Excel_VBA_编程教程(圆满版)excel高级教程
VBA-Excel编程见解之:【单元格和地区】一、怎样引用单元格和地区
使用VisualBasic的一般任务是指定单元格或单元格地区,今后对该单元格或单元格地区进行一些操作,如输入公式或改正格式。平常用一条语句就能达成操作,该语句可表记单元格,还可改正某个属性或应用某个方法。
在VisualBasic中,Range对象既可表示单个单元格,也可表示单元格地区。以下主题说了然表记和办理Range对象最常用的方法。
用A1样式记号引用单元格和单元格地区
可使用Range属性来引用A1引用样式中的单元格或单元格地区。下述子程序将单元格地区A1:D5的字体设置为加粗。
SubFormatRange()
Workbooks("Book1").Sheets("Sheet1").Range("A1:D5")_
.Font.Bold=True
EndSub
下表演示了使用Range属性的一些A1样式引用。
引用含义
Range("A1")单元格A1
Range("A1:B
5")从单元格A1到单元格B5
的地区
Range("C5:D9,G9:H16")多块选定地区
Range("A:A"
)A列
Range("1:1"
)
第一行
Range("A:C"
)从A列到C列的地区
Range("1:5"
)从第一行到第五行的地区
Range("1:1,3:3, 8:8")
第1、3和
8行
Range("A:A,C:C,
F:F")A、C和F列
用编号引用单元格
经过使用队列编号,可用Cells属性来引用单个单元格。该属性返回代表单个vba编程免费教程
单元格的Range对象。下例中,Cells(6,1)返回Sheet1上的单元格A6,今后将Value属性设置为10。
SubEnterValue()
Worksheets("Sheet1").Cells(6,1).Value=10
EndSub
因为可用变量取代编号,所以Cells属性特别适合于在单元格地区中循环,以下例所示。
SubCycleThrough()
DimCounterAsInteger
ForCounter=1To20
Worksheets("Sheet1").Cells(Counter,3).Value=Counter
NextCounter
EndSub
注意若是要同时改正某一单元格地区中所有单元格的属性或对其应用方法,可使用Range属性。相关详尽信息,请参阅用A1样式记号引用单元格。
引用行和列
可用Rows属性
元格地区的Range 后将单元格地区的Columns属性来办理整行或整列。这两个属性返回代表单对象。下例中,用Rows(1)返回Sheet1上的第一行,然Font对象的Bold属性设置为True。
SubRowBold()
Worksheets("Sheet1").Rows(1).Font.Bold=True
EndSub
下表举例说了然使用Rows和Columns属性的一些行和列的引用。引用
Rows(1) Rows Columns(1) Columns("A") Columns
含义
第一行
工作表上所有的行第一列
第一列
工作表上所有的列
若要同时办理若干行或列,请创办一个对象变量并使用Union方法,将对
Rows属性或Columns属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。
SubSeveralRows()
Worksheets("Sheet1").Activate
DimmyUnionAsRange
SetmyUnion=Union(Rows(1),Rows(3),Rows(5))
=True
EndSub
用快捷记号引用单元格
可用方括号将A1引用样式或命名地区括起来,作为Range属性的快捷方式。
这样就不用键入单词“Range”或使用引号,以下例所示。
SubClearRange()
Worksheets("Sheet1").[A1:B5].ClearContents
EndSub
SubSetValue()
[MyRange].Value=30
EndSub
引用命名地区
用名称比用A1样式记号更简单表记单元格地区。若要命名选定的单元格地区,
请单击编写栏左端的名称框,键入名称,再按Enter。
引用命名地区
下例引用了名为“MyBook.xls的”工作簿中的名为“MyRange”的单元格地区。
SubFormatRange()
Range("MyBook.xls!MyRange").Font.Italic=True
EndSub
下例引用名为“Report.xls的”工作簿中的特定工作表单元格地区“Sheet1!Sales。”
SubFormatSales()
Range("[Report.xls]Sheet1!Sales").BorderAroundWeight:=xlthin
EndSub
若要选定数名地区,请用GoTo方法,该方法将激活工作簿和工作表,今后选定该地区。
SubClearRange()
Application.GotoReference:="MyBook.xls!MyRange"
Selection.ClearContents
EndSub
下例显示关于活动工作簿将怎样编写同样的过程。
SubClearRange()
Application.GotoReference:="MyRange"
Selection.ClearContents
EndSub
在命名地区中的单元格上循环
下例用Next循环语句在命名地区中的每一个单元格上循环。若是该地区中的任一单元格的值高出limit的值,就将该单元格的颜改正为黄。
SubApplyColor()
ConstLimitAsInteger=25
ForEachcInRange("MyRange")
Ifc.Value>LimitThen
=27
EndIf
Nextc
EndSub
相关于其他单元格来引用单元格
办理相关于另一个单元格的某一单元格的常用方法是使用Offset属性。下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下
划线格式。
SubUnderline()
ActiveCell.Offset(1,3).Font.Underline=xlDouble
EndSub
注意可录制使用Offset属性(而不是绝对引用)的宏。在“工具”菜单上,指向“宏”,再单击“录制新宏”,今后单击“确定”,再单击录制宏工具栏上的“相对引用”按钮。
若要在单元格地区中循环,请在循环中将变量与Cells属性一同使用。下例以5为步长,用5到100之间的值填充第三列的前20个单元格。变量counter用作Cells属性的行号。
SubCycleThrough()
DimcounterAsInteger
Forcounter=1To20
Worksheets("Sheet1").Cells(counter,3).Value=counter*5Nextcounter
EndSub
用Range对象引用单元格
若是将对象变量设置为Range对象,即可用变量名方便地操作单元格地区。
下述过程创办了对象变量myRange,今后将活动工作簿中Sheet1上的单元格地区A1:D5赏赐该变量。随后的语句用该变量取代该地区对象,以改正该地区的属性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。