2024年2月3日发(作者:)
word版ExcelVBA编程授课方案版excel高级授课方案==Excel_VBA_编程教程(圆满版)excel高级教程VBA-Excel编程见解之:【单元格和地区】一、怎样引用单元格和地区使用VisualBasic的一般任务是指定单元格或单元格地区,今后对该单元格或单元格地区进行一些操作,如输入公式或改正格式。平常用一条语句就能达成操作,该语句可表记单元格,还可改正某个属性或应用某个方法。在VisualBasic中,Range对象既可表示单个单元格,也可表示单元格地区。以下主题说了然表记和办理Range对象最常用的方法。用A1样式记号引用单元格和单元格地区可使用Range属性来引用A1引用样式中的单元格或单元格地区。下述子程序将单元格地区A1:D5的字体设置为加粗。SubFormatRange()Workbooks("Book1").Sheets("Sheet1").Range("A1:D5")_.=TrueEndSub下表演示了使用Range属性的一些A1样式引用。引用Range("A1")Range("A1:B5")从单元格A1到单元格B5地区Range("C5:D9,G9:H16")多块选定地区Range("A:A")Range("1:1")Range("A:C")Range("1:5")Range("1:1,3:3,8:8")Range("A:A,C:C,F:F")从第一行到第五行的地区第1、3和8行从A列到C列的地区第一行A列含义单元格A1的A、C和F列1/131
word版ExcelVBA编程授课方案版excel高级授课方案==用编号引用单元格经过使用队列编号,可用Cells属性来引用单个单元格。该属性返回代表单个单元格的Range对象。下例中,Cells(6,1)返回Sheet1上的单元格A6,今后将Value属性设置为10。SubEnterValue()Worksheets("Sheet1").Cells(6,1).Value=102/132
word版ExcelVBA编程授课方案版excel高级授课方案==EndSub因为可用变量取代编号,所以Cells属性特别适合于在单元格地区中循环,以下例所示。SubCycleThrough()DimCounterAsIntegerForCounter=1To20Worksheets("Sheet1").Cells(Counter,3).Value=CounterNextCounterEndSub注意若是要同时改正某一单元格地区中所有单元格的属性或对其应用方法,可使用Range属性。相关详尽信息,请参阅用A1样式记号引用单元格。引用行和列可用Rows属性或元格地区的Range后将单元格地区的Columns属性来办理整行或整列。这两个属性返回代表单对象。下例中,用Rows(1)返回Sheet1上的第一行,然Font对象的Bold属性设置为True。SubRowBold()Worksheets("Sheet1").Rows(1).=TrueEndSub下表举例说了然使用Rows和Columns属性的一些行和列的引用。引用Rows(1)RowsColumns(1)Columns("A")Columns含义第一行工作表上所有的行第一列第一列工作表上所有的列若要同时办理若干行或列,请创办一个对象变量并使用Union方法,将对Rows属性或Columns属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。SubSeveralRows()Worksheets("Sheet1").ActivateDimmyUnionAsRangeSetmyUnion=Union(Rows(1),Rows(3),Rows(5))=TrueEndSub3/133
word版ExcelVBA编程授课方案版excel高级授课方案==用快捷记号引用单元格可用方括号将A1引用样式或命名地区括起来,作为Range属性的快捷方式。这样就不用键入单词“Range”或使用引号,以下例所示。SubClearRange()Worksheets("Sheet1").[A1:B5].ClearContentsEndSubSubSetValue([MyRange].Value=30EndSub引用命名地区用名称比用A1样式记号更简单表记单元格地区。若要命名选定的单元格地区,请单击编写栏左端的名称框,键入名称,再按Enter。引用命名地区下例引用了名为“的”工作簿中的名为“MyRange”的单元格地区。SubFormatRange()Range("!MyRange").=TrueEndSub下例引用名为“的”工作簿中的特定工作表单元格地区“Sheet1!Sales。”SubFormatSales()Range("[]Sheet1!Sales").BorderAroundWeight:=xlthinEndSub若要选定数名地区,请用GoTo方法,该方法将激活工作簿和工作表,今后选定该地区。SubClearRange()ference:="!MyRange"ontentsEndSub下例显示关于活动工作簿将怎样编写同样的过程。SubClearRange()ference:="MyRange"ontentsEndSub在命名地区中的单元格上循环)4/134
word版ExcelVBA编程授课方案版excel高级授课方案==下例用Next循环语句在命名地区中的每一个单元格上循环。若是该地区中的任一单元格的值高出limit的值,就将该单元格的颜色改正为黄色。SubApplyColor()ConstLimitAsInteger=25ForEachcInRange("MyRange")>LimitThen=27EndIfNextcEndSub相关于其他单元格来引用单元格办理相关于另一个单元格的某一单元格的常用方法是使用Offset属性。下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。SubUnderline()(1,3).ine=xlDoubleEndSub注意可录制使用Offset属性(而不是绝对引用)的宏。在“工具”菜单上,指向“宏”,再单击“录制新宏”,今后单击“确定”,再单击录制宏工具栏上的“相对引用”按钮。若要在单元格地区中循环,请在循环中将变量与Cells属性一同使用。下例以5为步长,用5到100之间的值填充第三列的前20个单元格。变量counter用作Cells属性的行号。SubCycleThrough()DimcounterAsIntegerForcounter=1To20Worksheets("Sheet1").Cells(counter,3).Value=counter*5NextcounterEndSub用Range对象引用单元格若是将对象变量设置为Range对象,即可用变量名方便地操作单元格地区。下述过程创办了对象变量myRange,今后将活动工作簿中Sheet1上的单元格地区A1:D5赏赐该变量。随后的语句用该变量取代该地区对象,以改正该地区的属性。5/135
word版ExcelVBA编程授课方案版excel高级授课方案==SubRandom()DimmyRangeAsRangeSetmyRange=Worksheets("Sheet1").Range("A1:D5")a="=RAND(EndSub引用工作表上的所有单元格)"=True若是对工作表应用Cells属性时不指定编号,该属性将返回代表工作表上所有单元格的Range对象。下述Sub过程除掉活动工作簿中Sheet1上的所有单元格的内容。SubClearSheet()Worksheets("Sheet1").ontentsEndSub引用多个单元格地区使用适合的方法能够很简单地同时引用多个单元格地区。可用Range和Union方法引用随意组合的单元格地区;用Areas属性可引用工作表上选定的一组单元格地区。使用Range属性经过在两个或多个引用之间放置逗号,可使用Range属性来引用多个单元格地区。下例除掉了Sheet1上三个单元格地区的内容。SubClearRanges()Worksheets("Sheet1").Range("C5:D9,G9:H16,B14:D18")._ClearContentsEndSub命名地区使得用Range属性办理多个单元格地区更加简单。下例可在三个命名地区处于同一工作表时运行。SubClearNamed()Range("MyRange,YourRange,HisRange").ClearContentsEndSub使用Union方法用Union方法可将多个单元格地区组合到一个Range对象中。下例创办了名为myMultipleRange的Range对象,并将其定义为单元格地区A1:B2和C3:D4的组合,今后将该组合地区的字体设置为加粗。SubMultipleRange()Dimr1,r2,myMultipleRangeAsRange6/136
word版ExcelVBA编程授课方案版excel高级授课方案==Setr1=Sheets("Sheet1").Range("A1:B2")Setr2=Sheets("Sheet1").Range("C3:D4")SetmyMultipleRange=Union(r1,r2)=TrueEndSub使用Areas属性可用Areas属性引用选定的单元格地区或多块选定地区中的地区会合。下述过程计算选定地区中的块数目,若是有多个块,就显示一则警示信息。SubFindMultiple()If>1ThenMsgBox"Cannotdothistoamultipleselection."EndIfEndSub7/137
word版ExcelVBA编程授课方案版excel高级授课方案==VBA-Excel编程见解之:【单元格和地区】二、在单元格地区中循环在单元格地区中循环使用VisualBasic时,经常需要对某一单元格地区内的每个单元格运行同一段语句。为达到这一目的,可组合循环语句和一个或多个方法来表记每个单元格,一次针对一个单元格,并履行该操作。在单元格地区中循环的一种方法是将Next循环语句与Cells属性配合使用。使用Cells属性时,可用循环计数器(或其他变量或表达式)来取代单元格索引编号。下例中,变量counter取代了行号。此过程将在单元格地区C1:C20中循环,将所有绝对值小于0.01的数字都设置为0(零)。SubRoundToZero1()ForCounter=1To20SetcurCell=Worksheets("Sheet1").Cells(Counter,3)IfAbs()<=0NextCounterEndSub在单元格地区中循环的另一种简单方法是使用Next循环语句和由Range属性指定的单元格会合。在每一次循环过程中,VisualBasic都为下一个单元格自动设置一个对象变量。下述过程在单元格地区A1:D10中循环,将所有绝对值小于0.01的数字都设置为0(零)。SubRoundToZero2()ForEachcInWorksheets("Sheet1").Range("A1:D10").CellsIfAbs()<=0NextEndSub若是不知道要循环的单元格地区的界线,可用CurrentRegion属性返回活动单元格周围的地区。比方,下述过程在工作表上运行时,将在活动单元格周围的地区内循环,将所有绝对值小于0.01的数字都设置为0(零)。SubRoundToZero3()ForEachcInIfAbs()<=0NextEndSub8/138
word版ExcelVBA编程授课方案版excel高级授课方案==VBA-Excel编程见解之:【单元格和地区】三、选定和激活单元格选定和激活单元格使用MicrosoftExcel时,平常要先选定单元格或单元格地区,今后履行某一操作,如设置单元格的格式或在单元格中输入数值。但在VisualBasic中,平常在改正单元格从前不用先选定它们。比方,若是要用VisualBasic在单元格D6中输入公式,就不用先选定单元格D6,而只要返回Range对象,今后将该对象的Formula属性设置为所需的公式,以下例所示。SubEnterFormula()Worksheets("Sheet1").Range("D6").Formula="=SUM(D2:D5)"EndSub相关使用其他方法在不选定单元格的情况下对其进行控制的示例,请参阅怎样引用单元格和地区。使用Select方法和Selection属性Select方法激活工作表和工作表上的对象;而Selection属性返回代表活动工作簿中活动工作表上的目前选定地区的对象。在成功使用Selection属性从前,必定先激活工作簿,并激活或选定工作表,今后用Select方法选定单元格地区(或其他对象)。宏录制器经常创办使用Select方法和Selection属性的宏。下述Sub过程是用宏录制器创办的,该过程演示了Select方法和Selection属性在一同使用的方法。SubMacro1()Sheets("Sheet1").SelectRange("A1").aR1C1="Name"Range("B1").aR1C1="Address"Range("A1:B1").Select=TrueEndSub下例达成同样的任务,但不激活或选定工作表或单元格。SubLabels()WithWorksheets("Sheet1")9/139
word版ExcelVBA编程授课方案版excel高级授课方案==.Range("A1")="Name".Range("B1")="Address".Range("A1:B1").=TrueEndWithEndSub选定活动工作表上的单元格若是用Select方法选定单元格,应注意Select方法仅用于活动工作表。若是从模块中运行Sub过程,必定先在该过程中激活工作表,今后才能用Select方法选定单元格地区,否则该方法将失败。比方,下述过程在活动工作簿中将Sheet1中的一行复制到Sheet2上。SubCopyRow()Worksheets("Sheet1").Rows(1).CopyWorksheets("Sheet2").SelectWorksheets("Sheet2").Rows(1).SelectWorksheets("Sheet2").PasteEndSub激活选定地区内的单元格可用Activate方法激活选定地区内的单元格。即使选定了单元格地区,也只能有一个活动单元格。下述过程选定了一个单元格地区,今后激该死地区内的一个单元格,但其实不改变选定地区。SubMakeActive()Worksheets("Sheet1").ActivateRange("A1:D4").SelectRange("B2").ActivateEndSub10/1310
word版ExcelVBA编程授课方案版excel高级授课方案==VBA-Excel编程见解之:【单元格和地区】四、办理三维地区若是要办理若干工作表上同样地址的单元格地区,可用Array函数选定两张或多张工作表。下例设置三维单元格地区的边框格式。SubFormatSheets()Sheets(Array("Sheet2","Sheet3","Sheet5")).SelectRange("A1:H1").s(xlBottom).LineStyle=xlDoubleEndSub下例应用FillAcrossSheets方法,在活动工作簿中,将Sheet2上的单元格地区的格式和任何数据复制到该工作簿中所有工作表上的相应地区中。SubFillAll()Worksheets("Sheet2").Range("A1:H1")_.Borders(xlBottom).LineStyle=rossSheets(Worksheets("Sheet2")_.Range("A1:H1"))EndSub11/1311
word版ExcelVBA编程授课方案版excel高级授课方案==VBA-Excel编程见解之:【单元格和地区】五、办理活动单元格办理活动单元格ActiveCell属性返回代表活动单元格的Range对象。可对活动单元格应用Range对象的任何属性和方法,以下例所示。SubSetValue()Worksheets("Sheet1").=35EndSub注意只有活动单元格所在的工作表处于活动状态时,才能办理该活动单元格。搬动活动单元格可用Activate方法指定活动单元格。比方,下述过程使单元格B5成为活动单元格,今后将其字体设置为加粗。SubSetActive()Worksheets("Sheet1").ActivateWorksheets("Sheet1").Range("B5").Activate=TrueEndSub注意若要选定单元格地区,请用Select方法。若要使单个单元格成为活动单元格,请使用Activate方法。可用Offset属性来搬动活动单元格。下述过程在选定地区内的活动单元格中插入文本,今后将活动单元格右移一格,但其实不改正选定地区。SubMoveActive()Worksheets("Sheet1").ActivateRange("A1:D10").="MonthlyTotals"(0,1).ActivateEndSub选择活动单元格周围的单元格CurrentRegion属性返回由空白行和空白列所包围的单元格地区。下例中,选定地区扩大到与活动单元格相邻的包含数据的单元格中,今后用“钱币”样式设置该地区的格式。12/1312
word版ExcelVBA编程授课方案版excel高级授课方案==SubRegion()Worksheets("Sheet1").="Currency"EndSub13/1313
本文发布于:2024-02-03 13:37:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170693862750512.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |