VBA基础语句学习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

选择一个工作表:Sheets(Balance).Activate.选择单元格:Range(A1).Select选择连续的单元格:Range(A1:G8).Select选择不连续的单元格:Range(A1,B6,D9).SelectRange(A1,B6:B10,D9).Select选择当前活动的工作簿:ThisWorkbook.Activate如果选择其他工作簿,注意该工作簿一定是打开的,并且不要忘记加上后缀“.xls”,例如:Windows(Totol.xls).Activate选择一个工作表:Sheets(Balance).Activate.单元格间移动:ActiveCell.Offset(13,14).SelectSelection.Offset(-3,-4).SelectRange(G8).Offset(-3,-4).Select注意:你可以定义一变量,并且用offset来实现,例如:varFreightRowsCount=Range(A1).CurrentRegion.Rows.CountActiveCell.Offset(varFreightRowsCount,0).Select选择整个工作表:Cells.Select选择当前单元格所在的区域(遇到空行/空列即止):Range(A1).CurrentRegion.Select选择行或列:Rows(1).SelectColumns(A).Select或者:ActiveCell.EntireRow.SelectActiveCell.EntireColumn.Select选择相邻的多行/多列:Columns(A:C).SelectRows(1:5).Select选择不相邻的多行/多列:注意:和选择相邻的多行/多列不同,使用Range而不是Columns/Rows:Range(A:A,C:C,E:F).SelectRange(1:1,5:6,9:9).Select选择当前活动单元格向下至最后一个非空单元格:Range(A1,Range(A1).End(xlDown)).SelectRange(ActiveCell,ActiveCell.End(xlDown)).Select选择当前活动单元格向上至第一个非空单元格:Range(A32,Range(A32).End(xlUp)).SelectRange(ActiveCell,ActiveCell.End(xlUp)).Select选择当前活动单元格向右至第一个非空单元格?注意:是xlTORight而不是xlRightRange(A1,Range(A1).End(xlToRight)).SelectRange(ActiveCell,ActiveCell.End(xlToLeft)).Select选择当前活动单元格向右至第10个单元格?Range(A2,Range(A2).Offset(0,10)).SelectRange(ActiveCell,ActiveCell.Offset(0,10)).Select选择当前活动单元格向左至第10个单元格?Range(A20,Range(A20).Offset(0,-10)).SelectRange(ActiveCell,ActiveCell.Offset(0,-10)).Select选择当前活动单元格向下至第10个单元格?Range(a2,Range(a2).Offset(10,0)).SelectRange(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).SelectExcel的宏不能记录移至当前行的第一个单元格的动作(即你按下“Home”键的动作),下面的语句则可以做到:ActiveCell.Offset(0,-ActiveCell.Column+1).Select移至当前列的第一个单元格:ActiveCell.Offset(-ActiveCell.Row+1,0).Select关于If..Then...EndIf如果只有一个条件及一个动作,你可以用以下语句:IfSelection.Value10ThenSelection.Offset(1,0)=100EndIf或者更简单的:IfSelection.Value10ThenSelection.Offset(1,0)=100如果有两个条件及两个动作,你可以用下面的语句IfSelection.Value10ThenIfSelection.Value=12ThenSelection.Offset(1,0)=100EndIfSelection.Offset(1,0)=20EndIf关于If..Then...And...EndIf当有双重条件和一个动作时,你可以用下面的语句:IfSelection.Value=10AndSelection.Offset(0,1).Value=20ThenSelection.Offset(1,0)=100EndIf关于If..Then...Or...EndIf当有双重条件和一个动作时,你可以用下面的语句:IfSelection.Value=10OrSelection.Offset(0,1).Value=20ThenSelection.Offset(1,0)=100EndIf关于If..Then...Else...EndIf当只有一个条件和两个动作时,你可以用下面的语句:IfSelection.Value10ThenSelection.Offset(1,0)=100ElseSelection.Offset(1,0)=0EndIf关于If..Then..ElseIf...EndIf当有不止一个条件,且每个条件都跟随不同的动作时,你可以用下面的语句:IfSelection.Value=1ThenSelection.Offset(1,0)=10ElseIfSelection.Value=2ThenSelection.Offset(1,0)=20ElseIfSelection.Value=3ThenSelection.Offset(1,0)=30ElseIfSelection.Value=4ThenSelection.Offset(1,0)=40ElseIfSelection.Value=5ThenSelection.Offset(1,0)=50EndIf关于SelectCase当你不得不测试很多条件,你可以用SelectCase语句来代替IfThen..ElseIf。语法如下:Subtest()SelectCaseSelection.ValueCaseIs=85Selection.Offset(0,1)=ACaseIs=75Selection.Offset(0,1)=BCaseIs=65Selection.Offset(0,1)=CCaseIs=50Selection.Offset(0,1)=DCaseElseSelection.Offset(0,1)=FEndSelectEndSub这段语句的意思就是:如果所选单元格的值大于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函数可以将其转化为小写:IfLCase(Selection.value)=totothen...orSelectCaseLCase(Selection.Value)orDoWhileLCase(Selection.Value)totoNOW()NOW()既是Excel函数也是VBA函数。通过下面的语句,在打开工作簿时,单元格A1就会显示为当前时间:Range(A1).Formula==Now()下面的语句则在执行后赋予单元格“A1”当前时间,该时间不会改变除非你再次执行语句。并且你每次打开工作簿后,单元格“A1”的值不会改变。Range(A1).Value=Now()UCase当对输入的字符做判断时,我们无法知道用户输入的字符是大写还是小写,用LCase函数可以将其转化为大写:IfUCase(Selection.value)=TOTOthen...orSelectCaseUCase(Selection.Value)orDoWhileUCase(Selection.Value)TOTO

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功