关于VBA在EXCEL中的应用,求一实例

关于VBA在EXCEL中的应用,求一实例,第1张

zhouziyan2001 ,离线解释:

Dim i As Long, j

'定义变量

For i = 1 To Sheet8.Range("a65536").End(xlUp).Row

'运算从Sheet8的第一行到第一列的最后一个有内容的单元格所在列.

'对后面内容,你可以查找END()的帮助来理解

Sheet3.Cells(i, 1).Formula = "=MATCH(Sheet8!A" &i &",Sheet1!A:A,0)"

'本句为了节省代码,直接借用了EXCEL的公式来查找符合条件的单元格所在的行

'函数MATCH就是查找函数.

'否则,要自己编写查找循环代码,由于VBA是解释执行,会导致效率很低,

'Formula就是把后面的公式写到该单元格中并运算.

j = Sheet3.Cells(i, 1): Sheet3.Cells(i, 1) = ""

'找到后将值(也就是查找到的行)传递给变量j,

If IsNumeric(j) Then

Sheet1.Cells.Rows(j).Cut

Sheet3.Rows(i).Insert

Sheet1.Cells.Rows(j).Delete

End If

'IF语句用来将该行复制,粘贴在SHEET3的相关行中,结束后将该行删除.

'如果在同一工作表中,该三行语句可简化为: Cells.Rows(j).Cut Rows(i)

Next i

'运行下一行

用双击事件,我现在也正要类似的代码,我的是要在本单元格写入值之后,再将值写入所有表中的相同列的数据进行更新,其实公式就可以搞定的,boss偏要这样来,郁闷...,

首先说下思路吧:

先记住单元格的行,列号

r = ActiveCell.Row

c = ActiveCell.Column

写在选择变动事件中

在改变事件中写入以下代码记住单元格的值

Cells(r, c).Value

你再写你的复杂计算式

再写入

Cells(r, c).Value=你计算后的值

这样,你鼠标都不用点了,,,,,

1、if语句的含义:if语句字面意思就是如果的意思,如果条件为真,那么就执行if语句里面的程序,这个程序,一般指then后面的,一个if语句可以没有end if,但绝对不能没有then,这一点是要注意的。

2、if……then……结构

该结构一般用于比较简单的判断语句执行,下面以一段实例程序来讲解。

实例:如果第一个单元格不为空,那么就d出一个提示框“单元格不为空”。

程序:

Sub 判断语句()

If Cells(1, 1) <>"" Then MsgBox "单元格不为空"

End Sub

3、if……then……end if结构

该结构用于单选择判断语句执行,具体用法看下面实例。

实例:对于第一列的第一行到第十行单元格,作如下判断,如果单元格为空值了那么在相应的第二列单元格输出“VBA教研室”。

程序:

Sub 判断语句()

Dim i As Integer

For i = 1 To 100

If Cells(i, 1) = "" Then

Cells(i, 2) = "VBA教研室"

Exit For

End If

Next

End Sub

4、if ……then……else……end if结构

该结构用于事件只有两个可能的情况先选择的判断语句,具体见下面实例分析。

实例:对于第一列的第1,2行两个单元格做判断,如果单元格值为空,则在相应的第二列单元格输出false,否则输出Ture。

程序:

Sub 判断语句()

Dim i As Integer

For i = 1 To 2

If Cells(i, 1) = "" Then

Cells(i, 2) = "false"

Else

Cells(i, 2) = "True"

End If

Next

End Sub

5、if ……then……elseif……then……else……end if结构

该结构用于多条件判断语句执行,具体见下面实例分析

实例:对三名同学的成绩作出判断,大于等于80分的为优秀;60到80之间的为及格;0到60分之间的为不及格;0分为考试无效。

程序:

Sub 判断语句()

Dim i As Integer

For i = 2 To 7

If Cells(i, 2) >= 80 Then

Cells(i, 3) = "优秀"

ElseIf Cells(i, 2) <80 And Cells(i, 2) >= 60 Then

Cells(i, 3) = "及格"

ElseIf Cells(i, 2) <60 And Cells(i, 2) >0 Then

Cells(i, 3) = "不及格"

Else

Cells(i, 3) = "考试无效"

End If

Next

End Sub

6、if语句嵌套使用

if语句可以灵活的嵌套使用的,如下面这套程序

Sub 判断语句()

Sub 判断语句()

If Cells(1, 1) <>"" Then

If Cells(1, 1) = "VBA教研室" Then

MsgBox "OK!"

Else

MsgBox "NO!"

End If

End If

End Sub

参考资料:百度经验-Excel VBA中if语句的用法


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11090650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存