选择单元格:Range("A1").Select
选择连续的单元格:Range("A1:G8").Select
选择不连续的单元格:Range("A1,B6:B10,D9").Select
单元格间移动:
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("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
另有:xlUp、xltoRight、xltoLeft
选择当前活动单元格向右至第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
选择当前活动单元格向下至第10个单元格。
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
移至当前行的第一个单元格:
ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
移至当前列的第一个单元格:
ActiveCell.Offset( -ActiveCell.Row + 1,0).Select
这里有一些关于VBA函数 LCase, Now(), UCase 的例子:
注意:很多EXCEL函数都可以以下面的形式用在VBA中:
varAnswer = Application.WorksheetFunction.Sum(Range("A1:A32"))
或者
varAnswer = Application.Sum(Range("A1:A32"))
LCase 字符转化为小写
UCase 字符转化为大写
If LCase(Selection.value)= "toto" then...
or
Select Case LCase(Selection.value)
or
DO WHILE LCase(Selection.value)<>"toto"
NOW()
打开工作簿时,单元格 "A1"就会显示为当前时间:Range("A1").Formula = "=Now()"
下面的语句则在执行后赋予单元格“A1”当前时间:Range("A1").Value = Now()
选择连续的单元格:Range("A1:G8").Select
选择不连续的单元格:Range("A1,B6:B10,D9").Select
单元格间移动:
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("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
另有:xlUp、xltoRight、xltoLeft
选择当前活动单元格向右至第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
选择当前活动单元格向下至第10个单元格。
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
移至当前行的第一个单元格:
ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
移至当前列的第一个单元格:
ActiveCell.Offset( -ActiveCell.Row + 1,0).Select
这里有一些关于VBA函数 LCase, Now(), UCase 的例子:
注意:很多EXCEL函数都可以以下面的形式用在VBA中:
varAnswer = Application.WorksheetFunction.Sum(Range("A1:A32"))
或者
varAnswer = Application.Sum(Range("A1:A32"))
LCase 字符转化为小写
UCase 字符转化为大写
If LCase(Selection.value)= "toto" then...
or
Select Case LCase(Selection.value)
or
DO WHILE LCase(Selection.value)<>"toto"
NOW()
打开工作簿时,单元格 "A1"就会显示为当前时间:Range("A1").Formula = "=Now()"
下面的语句则在执行后赋予单元格“A1”当前时间:Range("A1").Value = Now()
选择当前活动的工作簿:ThisWorkbook.Activate 如果选择其他工作簿,注意该工作簿一定是打开的,并加上后缀“.xls”: Windows("Totol.xls").Activate 选择一个工作表:Sheets("Balance").Activate. |