excel VBA入门基础语句详解
发布时间:2022-03-21 13:21:56
选择一个工作表:
Sheets("Balance").Activate.
选择单元格:
Range("A1").Select
选择连续的单元格:
Range("A1:G8").Select
选择不连续的单元格:
Range("A1,B6,D9").Select
Range("A1,B6:B10,D9").Select
选择当前活动的工作簿:
ThisWorkbook.Activate
如果选择其他工作簿,注意该工作簿一定是打开的,并且不要忘记加上后缀“.xls” ,例如:
Windows("Totol.xls").Activate
选择一个工作表:
Sheets("Balance").Activate.
单元格间移动:
ActiveCell.Offset(13, 14).Select
Selection.Offset(-3, -4).Select
Range("G8").Offset(-3, -4).Select
注意:你可以定义一变量,并且用offset来实现,例如:
varFreightRowsCount = Range("A1").CurrentRegion.Rows.Count
ActiveCell.Offset(varFreightRowsCount, 0).Select
选择整个工作表:
Cells.Select
选择当前单元格所在的区域 (遇到空行 / 空列即止):
Range("A1").CurrentRegion.Select
选择行或列:
Rows("1").Select
Columns("A").Select
或者:
ActiveCell.EntireRow.Select
ActiveCell.EntireColumn.Select
选择相邻的多行/多列:
Columns("A:C").Select
Rows("1:5").Select
选择不相邻的多行/多列:
注意:和选择相邻的多行/多列不同,使用"Range"而不是"Columns/Rows":
Range("A:A, C:C, E:F").Select
Range("1:1,5:6,9:9").Select
选择当前活动单元格向下至最后一个非空单元格:
Range("A1", Range("A1").End(xlDown)).Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select
选择当前活动单元格向上至第一个非空单元格:
Range("A32", Range("A32").End(xlUp)).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
选择当前活动单元格向右至第一个非空单元格?
注意:是 "xlTORight"而不是 "xlRight"
Range("A1", Range("A1").End(xlToRight)).Select
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
选择当前活动单元格向右至第10个单元格?
Range("A2", Range("A2").Offset(0, 10)).Select
Range(ActiveCell, ActiveCell.Offset(0, 10)).Select
选择当前活动单元格向左至第10个单元格?
Range("A20", Range("A20").Offset(0, -10)).Select
Range(ActiveCell, ActiveCell.Offset(0, -10)).Select
选择当前活动单元格向下至第10个单元格?
Range("a2", Range("a2").Offset(10, 0)).Select
Range(ActiveCell, ActiveCell.Offset(10, 0)).Select
选择当前活动单元格向上至第10个单元格?
Range("A1").End(xlDown).Offset(1, 0).Select
选择该行中第一个空单元格:
Range("A1").End(xlToRight).Offset(0, 1).Select
改变区域的大小(由 A1:B5 变为 A1:D10):注意:改区域并不是向外扩张,而是重新定义了。即“Selection.Resize(10, 4).Select而不是Selection.Resize(5, 2).Select
Excel的宏不能记录移至当前行的第一个单元格的动作(即你按下“Home”键的动作),下面的语句则可以做到:
ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
移至当前列的第一个单元格:
ActiveCell.Offset(-ActiveCell.Row + 1, 0).Select
关于If..Then...EndIf
如果只有一个条件及一个动作,你可以用以下语句:
If Selection.Value > 10 Then
Selection.Offset(1, 0) = 100
End If
或者更简单的:
If Selection.Value > 10 Then Selection.Offset(1, 0) = 100
如果有两个条件及两个动作,你可以用下面的语句
If Selection.Value > 10 Then
If Selection.Value = 12 Then
Selection.Offset(1, 0) = 100
End If
Selection.Offset(1, 0) = 20
End If
关于If..Then...And...EndIf
当有双重条件和一个动作时,你可以用下面的语句:
If Selection.Value = 10 And Selection.Offset(0, 1).Value = 20 Then
Selection.Offset(1, 0) = 100
End If
关于If..Then...Or...EndIf
当有双重条件和一个动作时,你可以用下面的语句:
If Selection.Value = 10 Or Selection.Offset(0, 1).Value = 20 Then
Selection.Offset(1, 0) = 100
End If
关于If..Then...Else...EndIf
当只有一个条件和两个动作时,你可以用下面的语句:
If Selection.Value > 10 Then
Selection.Offset(1, 0) = 100
Else
Selection.Offset(1, 0) = 0
End If
关于If..Then..ElseIf...EndIf
当有不止一个条件,且每个条件都跟随不同的动作时,你可以用下面的语句:
If Selection.Value = 1 Then
Selection.Offset(1, 0) = 10
ElseIf Selection.Value = 2 Then
Selection.Offset(1, 0) = 20
ElseIf Selection.Value = 3 Then
Selection.Offset(1, 0) = 30
ElseIf Selection.Value = 4 Then
Selection.Offset(1, 0) = 40
ElseIf Selection.Value = 5 Then
Selection.Offset(1, 0) = 50
End If
关于Select Case
当你不得不测试很多条件,你可以用Select Case 语句来代替If Then..ElseIf 。语法如下:
Sub test()
Select Case Selection.Value
Case Is >= 85
Selection.Offset(0, 1) = "A"
Case Is >= 75
Selection.Offset(0, 1) = "B"
Case Is >= 65
Selection.Offset(0, 1) = "C"
Case Is >= 50
Selection.Offset(0, 1) = "D"
Case Else
Selection.Offset(0, 1) = "F"
End Select
End Sub
这段语句的意思就是:如果所选单元格的值大于85时,则其右边那个单元格的值为“A”…… 所选单元格的值小于50时,其右边那个单元格的值为“F”
这里有一些关于VBA函数 LCase, Now(), UCase 的例子:
注意: 很多EXCEL函数都可以以下面的形式用在VBA中:
varAnswer = Application.WorksheetFunction.Sum(Range("A1:A32"))
或者
varAnswer = Application.Sum(Range("A1:A32"))
LCase
当对输入的字符做判断时,我们无法知道用户输入的字符是大写还是小写,用LCase函数可以将其转化为小写:
If LCase(Selection.value)= "toto" then...
or
Select Case LCase(Selection.Value)
or
Do While LCase(Selection.Value) <> "toto"
NOW()
NOW() 既是Excel 函数也是VBA 函数。
通过下面的语句,在打开工作簿时,单元格 "A1"就会显示为当前时间:
Range("A1").Formula = "=Now()"
下面的语句则在执行后赋予单元格“A1”当前时间,该时间不会改变除非你再次执行语句。并且你每次打开工作簿后,单元格“A1”的值不会改变。
Range("A1").Value = Now()
UCase
当对输入的字符做判断时,我们无法知道用户输入的字符是大写还是小写,用LCase函数可以将其转化为大写:
If UCase(Selection.value)= "TOTO" then...
or
Select Case UCase(Selection.Value)
or
Do While UCase(Selection.Value) <> "TOTO"
猜你喜欢
- 在word文档操作中,有时需要调整字符间距,可以通过word提供的字符间距设置功能来更改字符的间距。其实设置方法很简单,今天小编就教你wor
- 图表又称表格,是一种非常有用的工具。Excel可以很容易地实现图表的快速创建,从而更直观地表现数据变化。实际上,Excel的图表功能非常强大
- 我们在使用word文档时,经常会需要输入小于等于号,但是键盘上却没有这个按键,那么该如何操作呢,一起来了解一下吧我们在使用电脑的时候,经常会
- 如何在Word 2016中使用十进制选项卡?使用Word 2016中的十进制选项卡将数字列对齐。尽管可以为该作业使用一个右选项卡,但是十进制
- Office 2007 ed2k的默认安装位置是C盘,但是许多网友习惯将软件安装在D盘,所以如果想在office2007安装过程中将默认的安
- 许多用户在使用电脑的时候都会进行一些特殊的设置,例如最近有用户在使用Win10电脑的时候把域退出后,想要切换账户却无法切换,这要怎么解决呢?
- 当制作好工作表后,由于某种原因,想要修改工作表中的公式,例如想将公式中的求和改为求平均,此时,如果只有少量的几个公式,直接一个个修改就可以了
- Ctrl+1在Excel中是经常用到的一个快捷键,一起来解锁Ctrl+1快捷键的更多使用技巧。1、小数点保留两位数选中数据区域,按下组合键C
- 其实在Word中,真的有很多的绘制表格的方法。今天小编要介绍一个比较少人知道的方法,就是利用+、-来绘制表格。很多的朋友肯定以为小编在开玩笑
- 在平时闲暇时间,我们阅读书籍时,一般一次阅读几页,我们都有一个书签,把书签夹在我们看到的那一页,方便我们下次接着上次的继续阅读,那么我们阅览
- 在word2007中添加标题3的方法如下:打开word2007,点击“开始”,再点击“样式”窗口中的“标题2”;
- 小王老师告诉你如何使用复选框来合成函数式。在这里,我们将综合前面的表格并插入一些图表。每当我们检查一个项目时,表格会自动计算,图表会自动改变
- Win10电脑怎么修改文件格式?许多用户在使用电脑的时候,有些文件无法正常打开,很有可能是你将文件保存格式设置错误,而许多小伙伴不知道怎么修
- 曲线图作为数据集的另一种表现形式,可以使数据集呈现出更加形象、直观的表现形式,从而表达更加丰富、更加隐含却又极有价值的信息内容。excel表
- 当用户使用win10加速时,有些用户会问win10硬件加速的用途是什么?实际上,它的目的是减少处理器的工作。让我们来看看win10硬件加速的
- 今天给大家分享一下Excel中删除重复数据的4种方法,希望可以帮到你!Q:我也想像那些大神一样用Excel函数来删除重复数据,你可以给我写一
- 在excle表格中怎样编辑宏?下面是小编为大家精心整理的关于在Excle表格中如何编辑宏?希望能够帮助到你们。方法/步骤1打开excle表格
- Excel表格是一款功能非常强大的数据处理软件,很多小伙伴在日常办公时都会用得到。在Excel表格中我们经常需要对各种数据进行排序处理,比如
- 在行政工作中,处理日期数据的时候,是不是尤其苦恼呢,因为有的人将日期填写为:1998.12.13,19981213,1998 12 13……
- 复制不仅复制单元格中的内容,而且复制了单元格中的公式。复制含有公式的单元格2.在新的单元格右击3.在粘贴选项中点击【数值】注:粘贴选项中的第