excelvba代码大全,excelvba常用代码

http://www.itjxue.com  2023-01-05 06:55  来源:未知  点击次数: 

EXCEL VBA的代码?

假定表格中肯定有“+”号存在,代码如下,如果没有“+”号,则先增加判断语句,否则程序会出错。

Sub 删除行()

Ro = ActiveSheet.UsedRange.Find("+", , , 2).Row - 1

If Ro 0 Then Range("1:" Ro).Delete

End Sub

EXCEL VBA代码?

我的程序不是固定10行空白,是自动跳过空白,示例数据:

执行后的效果:

程序窗口:

程序文本:

Sub 合并C列()

? Dim i, i1, i2, j, s$

? j = 3 'C列

? i1 = Cells(Rows.Count, j).End(xlUp).Row '最后一行

? While i1 1

? ? ? i2 = Cells(i1, j).End(xlUp).Row '本组开始行

? ? ? s = ""

? ? ? For i = i2 To i1

? ? ? ? ? s = s Chr(10) Cells(i, j)

? ? ? Next i

? ? ? s = Right(s, Len(s) - 1)

? ? ? With Range(Cells(i2, j), Cells(i1, j))

? ? ? ? ? .ClearContents

? ? ? ? ? .Merge

? ? ? End With

? ? ? With Cells(i2, j)

? ? ? ? ? .Value = s

? ? ? ? ? .WrapText = True

? ? ? End With

? ? ? i1 = Cells(i2, j).End(xlUp).Row '上一行

? Wend

End Sub

关于EXCEL VBA代码!

默认的是不信任对VBA的访问,基本上在别人机器你这类代码都会失败,简单起见就删除文件吧。

自杀代码:

With?ThisWorkbook??'自杀

????????.Saved?=?True

????????.ChangeFileAccess?xlReadOnly

????????Kill?.FullName

????????.Close?False

End?With

excel宏vba代码每段解释一下

Sub test2() Dim i!, a1$, a2$, r As Range Columns(5).ClearContents '第5列清空 i = 4 '第4行开始输出 Set r = Range("A:A").Find(1) If r Is Nothing Then Exit Sub '找数据,找不到退出程序 a1 = r.Address '第一个找到的地址 Do Until a1 = a2 '一直找,直到又找到第一个 If r.Offset(, 1) = 10 Then '格子的右边是10 Cells(i, 5) = r.Offset(, 2) '在第5列输出 i = i + 1 '输出增加一行 End If Set r = Range("A:A").FindNext(r) '找下一个 a2 = r.Address LoopEnd Sub

excel中的VBA代码解释

一,Range("b2:f5").Interior.ColorIndex = xlNone

Range是区域对象,Range("b2:f5")就是指左上角为“B2”单元格,右下角为“F5”单元格这样一个连续的区域,应该是4行5列的一个区域。

Interior.ColorIndex 是指填充颜色(这里是采用ColorIndex严格说是颜色常数)

xlNone 表示清除原来的填充色。

所以这行代码就是清除区域Range("b2:f5")里的填充色。

二,Cells(x, y).Interior.ColorIndex = 3

Cells是单元格对象,Cells(x, y)就是指第x行y列对应的单元格

所以该行作用是,设置Cells(x, y)单元格的填充颜色常数为3。(具体3对应什么颜色我也背不出来)

三,DoEvents,这个都使用在反复执行用户循环的代码里。我们有体会,当执行次数很多的循环时,计算机的执行权完全被该循环控制,计算机无法执行其他操作,为此执行该语句,是让计算机可以执行其他操作。

四,If a = 1 Then Exit Sub

当 a = 1 退出过程,即结束运行该过程。

五,GoTo 10

无条件转移语句,就是转移到行号为10的那个语句。

你的这个过程如下:

Sub 随机()

Dim x As Integer

Dim y As Integer

a = 0

Randomize '初始化

10:

x = Rnd() * (5 - 2) + 2

y = Rnd() * (6 - 2) + 2

Range("b2:f5").Interior.ColorIndex = xlNone

Cells(x, y).Interior.ColorIndex = 3

DoEvents

If a = 1 Then Exit Sub

GoTo 10

End Sub

而下面是另一个过程,上面没有语句调用过它,所以无关;

Sub 结束()

a = 1

End Sub

分析你上面的过程,似乎进入死循环,因为没有使得 a = 1 的操作?

10:

。。。。。。

。。。。。。

Goto 10

从上到下,执行到Goto 10,又回到10:那一行,反复无限循环。

(责任编辑:IT教学网)

更多

推荐时间特效文章