巧用VBA自动处理Word表格.doc_第1页
巧用VBA自动处理Word表格.doc_第2页
巧用VBA自动处理Word表格.doc_第3页
巧用VBA自动处理Word表格.doc_第4页
巧用VBA自动处理Word表格.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

巧用VBA自动处理Word表格发布: 2007-8-08 17:59| 作者: http:/www.52wang.ne| 来源: /| 查看: 808次 Microsoft Word 97是大家熟悉的文字处理软件,强大的功能为我们的工作提供了很大的帮助。而Visual Basic for Applications(VBA)的应用更为Word 97增添了不少特色,合理而恰当地使用VBA可为用户提供极大的方便。下面介绍几则使用VBA编程自动处理Word表格的例子。 Office中国社区门户gPH+n(Z n7F 1. 创建表格,插入文字 Office中国社区门户Pq?lp%F*en 本例的功能是在文档开头插入一张 3 行 4 列的表格。可用For Each.Next 结构来循环遍历表格中的每个单元格。在 For Each.Next 结构中,InsertAfter 方法用来向表格单元格添加文字(第 1 单元格、 第 2 单元格等等),oTable.AutoFormat属性用于指定表格套用格式。运行结果如图1: Office中国社区门户 g:TO()s+0869600.JPG;图1 Office中国社区门户a4?9nKfNO Set oDoc = ActiveDocument 2Ztx I d0 Set oTable= oDoc.Tables.Add(Range:=oDoc.Range(Start:=0, End:=0), NumRows Np;p*KP M4i t0:=3,NumColumns:=4) .fKK$r8z2DjV0 iCount = 1 z.VoWp2W4J$L_k:o6T0 For Each oCell In oTable.Range.Cells .Xn28c0R0 oCell.Range.InsertAfter 第 & iCount & 单元格 9C1S4D9hv(pj0 iCount = iCount + 1 h%k*b.v|&g0 Next oCell A(TC;_Y X0 oTable.AutoFormat Format:=wdTableFormatColorful2,ApplyBorders:=True, App hfxCI K0lyFont:=True, ApplyColor:=True *Lmp(Nn/w3aY0 2. 在表格的列、行插入序号 Office中国社区门户)j+le ip/b 1. 如果需要在表格的第一列插入序号,只需将 For Each.Next 结构中的内容改为下述程序行即可,其中InsertAfter 方法用来向表格单元格添加序号(第 1 行、 第2 行等等)。 9b:ph4z0 If iCount Mod 4 = 1 Then 8NVe8V&M9VP,m0 oCell.Range.InsertAfter第 & (iCount - 1) / 4 + 1 & 行 WZS jah.p7u#YB0 End If Office中国社区门户N N c5x)J0sP s iCount = iCount + 1 Office中国社区门户o;F4e5QRP*A;H 2. 如果需要从表格的第二行开始插入序号,应将上述代码改为: MI8a&VU-49WK0 If iCount Mod 4 = 1 And iCount 4 Then (on U2f n y g0 oCell.Range.InsertAfter 第 & (iCount - 1) / 4 & 行 Office中国社区门户B$p#Gp End If Office中国社区门户 cTr+k5BuG iCount = iCount + 1 -Y|Ka9ZD0 3. 在表格的列插入日期 Office中国社区门户_9i A2jn;IXz (1) 如需在表格的第一列插入日期, 可用For Each.Next结构来循环遍历表格中的每个单元格,当判断某一单元格为第一列时,插入日期。Formart(Date,.)用于指定日期的格式,下面例子中的日期从Date+1(即当前日期第二天)开始,用户可以根据需要自定义。 *frf0 Set oDoc = ActiveDocument Office中国社区门户Z!A9DVQL F Set oTable =oDoc.Tables.Add(Range:=oDoc.Range(Start:=0,End:=0),NumRows:= Office中国社区门户 l0mdw y4t#c8K(_4,NumColumns:=4) J*xc3eaJ0 iCount = 1 Tk1H k$|0 For Each oCell In oTable.Range.Cells Office中国社区门户zute*JOj If iCount Mod 4 = 1 And iCount 4 Then 7mr M6|qAA0 oCell.Range.InsertAfter Format(Date + (iCount - 1) / 4, YYYY.MM.DD) Th9rcY1x1D9cN0 End If /AL7a2vHn0 If iCount Mod 4 = 2 And iCount 4 Then $g-17 YY2a60 oCell.Range.InsertAftercWeekName(WeekDay(Date+(iCount - 1) / 4) Office中国社区门户6e4e I$K,qc!? End If fKo!q5H1sO+Ob.Vn0 iCount = iCount + 1 Office中国社区门户t3P5| U Z-I DK J Next oCell +2g#yY#BT B-D H_0 oTable.AutoFormat Format:=wdTableFormatColorful1,ApplyBorders:=True, Ap a cn)Y6w d2Bl0plyFont:=True, ApplyColor:=True Office中国社区门户:FqAf)ub0869601.JPG;图2 u+Tw+nA ah O0 (2) 如果需要在表格的第二列插入星期值,可在上例的For Each.Next结构中插入以下几行: Office中国社区门户w+W1wi H If iCount Mod 4 = 2 And iCount 4 Then Q&Lu;j,V8jQh)S0 oCell.Range.InsertAfter cWeekName(WeekDay(Date + (iCount - 1) / 4) HC0E u2;H8V2A0 End If y*mk t6l.m0 其中,WeekDay(Date)返回一数值(17),分别表示星期日星期六,CWeekName数组需要事先定义为: Office中国社区门户R9U-s V| Dim cWeekName(7) Z KlFf V|G f0 cWeekName(1) = 星期日 *E%cb+Ij3s B0iO0 cWeekName(2) = 星期一 &x(ss1W2U$z0 . ZDCX&f5hJ(q4OT0 cWeekName(7) =星期六 -c,t-cb3?s E$g0 4. 根据单元格的内容设置不同的格式 o6_Z T8x._E0 以上例中表格为例,如果需要将所有星期六和星期日所在行格式改为蓝色背景,只要在上例程序之后追加以下几行即可(表格格式改为wdTableFormatColorful2,行数改为12行)。程序中再次使用For Each.Next结构遍历表格中的每一行(Rows),如果检测到某一行满足条件(星期六或星期日),则选择一行(Selection.SelectRow),将其属性改为需要的格式(本例中为蓝色背景)。 Office中国社区门户,q_ulgvp7B iCount = 1 !x o(l(j T Mj0 For Each Rows In oTable.Range.Rows :P va j,X.d Gy0 If (WeekDay(Date + (iCount - 1) = 7 Or WeekDay(Date + (iCount - 1)= 1) #Lr|%S0And iCount 1 Office中国社区门户8ebhH(kE Then !$Ai2!|Z9AKH0 Selection.SelectRow Office中国社区门户FF B4E vs1h? With Selection.Cells Office中国社区门户5iP hMU!*MKv With .Shading yN1%s-g5lp0 .Texture = wdTextureNone ;e nK(BUC0 .ForegroundPatternColorIndex = wdAuto Office中国社区门户&M0Oq(Ld u?dB .BackgroundPatternColorIndex = wdBlue Office中国社区门户lr.m NZT/P End With Office中国社区门户p P6p*o*)B End With Office中国社区门户*,?k1J6_ End If _bcLHv q&UC6T0 iCount = iCount + 1 Office中国社区门户8vVs NGi*J/h Selection.MoveDown Unit:=wdLine, Count:=1 +;l&c9K-h(e0 Next Rows +KmY rk1QA t00869602.JPG;图3 VCN;uF0AC0 以上几例简要介绍了使用VBA自动处理Word表格的例子(有关Visual Basic事件、方法、对象、属性的详细使用方法请参阅Microsoft Word Visual Basic帮助)。客户可将编制的Visual Basic代码作为Word宏指定到工具栏或快捷方式,方便以后的使用。用VBA操作word表格2008-12-22 15:20Word的表格功能是非常重要的一个功能,也是用户经常使用的一项功能,在Word 2003 中,增加了不少新的功能。如果利用VBA 自动处理表格将使用户的效率有极大的提高。1. 向表格单元格插入文字 下面的代码向活动文档的第一个表格的第一个单元格插入文字。 Cell 方法返回单个的 Cell 对象。Range 属性返回一个 Range 对象。Delete 方法用来删除现有的文字,而 InsertAfter 方法用来插入Cell 1,1文字。 If ActiveDocument.Tables.Count = 1 ThenWith ActiveDocument.Tables(1).Cell (Row:=1, Column:=1).Range.Delete.InsertAfter Text:=Cell 1,1End WithEnd If2 在表格中插入文字 下面的代码在文档的开头插入一张3 行 4 列的表格。For Each.Next 结构用来循环遍历表格中的每个单元格。在 For Each.Next 结构中,InsertAfter 方法用来向表格单元格(Cell 1、 Cell 2 等等)添加文字。Set oDoc = ActiveDocumentSet oTable = oDoc.Tables.Add(Range:=oDoc.Range(Start:=0, End:=0), NumRows:=3, NumColumns:=4)iCount = 1For Each oCell In oTable.Range.CellsoCell.Range.InsertAfter Cell & iCountiCount = iCount + 1Next oCelloTable.AutoFormat Format:=wdTableFormatColorful2, ApplyBorders:=True, ApplyFont:=True, _ApplyColor:=True3 显示每个单元格的内容 下面的代码返回并显示文档第一张表格第一行中每个单元格中的内容。Set oTable = ActiveDocument.Tables(1)For Each aCell In oTable.Rows(1).CellsSet myRange = ActiveDocument.Range(Start:=aCell.Range.Start, End:=aCell.Range.End - 1)MsgBox myRange.TextNext aCellSet oTable = ActiveDocument.Tables(1)For Each aCell In oTable.Rows(1).CellsSet myRange = aCell.RangemyRange.MoveEnd Unit:=wdCharacter, Count:=-1 非常重要,目的是去掉换行符 否则内容后面会有个小圆点 MsgBox myRange.TextNext aCell4 将文本转换为表格 下面的代码在活动文档的开头插入以制表符分隔的文本,然后将这些文本转换为一张表格。Set oRange1 = ActiveDocument.Range(Start:=0, End:=0)oRange1.InsertBefore one & vbTab & two & vbTab & three & vbCrSet oTable1 = oRange1.ConvertToTable(Separator:=Chr(9), NumRows:=1, NumColumns:=3)5 返回每个表格单元格的内容 下面的代码定义一个数组,使该数组的元素个数等于文档第一个表格中的单元格数(假定 Option Base 1) For Each.Next 结构用来返回每个表格单元格的内容,并将文字指定给相应的数组元素。If ActiveDocument.Tables.Count = 1 ThenSet oTable = ActiveDocument.Tables(1)iNumCells = oTable.Range.Cells.CountReDim aCells(iNumCells)i = 1For Each oCell In oTable.Range.CellsSet myRange = oCell.RangemyRange.MoveEnd Unit:=wdCharacter, Count:=-1aCells(i) = myRange.Texti = i + 1Next oCellEnd If6 将活动文档中的所有表格复制到一篇新文档 下面的代码将当前文档中的表格复制到新文档中。If ActiveDocument.Tables.Count = 1 ThenSet oDoc1 = ActiveDocumentSet MyRange = Documents.Add.Range (Start:=0, End:=0)For Each oTable In oDoc1.TablesoTable.Range.CopyWith MyRange.Paste.Collapse Direction:=wdCollapseEnd.InsertParagraphAfter.Collapse Direction:=wdCollapseEndEnd WithNextEnd If7 引用活动元素 要引用活动段落、表格、域或其他文档元素,可使用 Selection属性返回一个 Selection 对象。通过 Selection 对象,可以访问所选内容中的所有段落或第一个段落。下面的代码为所选内容的第一张表格第一行应用底纹。Selection.Tables(1).Rows(1).Shading.Texture = wdTexture10Percent 如果所选内容中没有表格,则会产生错误。使用 Count 属性可以判定所选内容中是否有表格。下面的代码为所选内容的第一张表格第一行应用底纹。 If Selection.Tables.Count = 1 ThenSelection.Tables(1).Rows(1).Shading.Texture = wdTexture10PercentElseMsgBox Selection doesnt include a tableEnd If 下面的代码为所选内容中每张表格的第一行应用底纹。For Each.Next 循环用来循环遍历所选内容中的每个表格。If Selection.Tables.Count = 1 ThenFor Each aTable In Selection.TablesaTable.Rows(1).Shading.Texture = wdTexture10PercentNext aTableEnd If使用VBA代码确定、激活、选择单元格/区域发布: 2007-8-07 10:20| 作者: admin| | 查看: 1986次 如何选择当前工作表中的单元格?n D,tLI4sw1w2B0例如,可以使用下面的代码选择当前工作表中的单元格D5:Office中国社区门户p_j+H ?%U.ActiveSheet.Cells(5,4).SelectgYD-so1E9L0或:ActiveSheet.Range(D5).Select;d vn6E *p9W0c s./c/U H0如何选择同一工作簿中其它工作表上的单元格?/c.Buo Fiwb Ry,q0例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:Office中国社区门户 I5V eD wN P!EApplication.GotoActiveWorkbook.Sheets(Sheet2).Cells(6,5)S;MnjRde2J0或:Application.Goto(ActiveWorkbook.Sheets(Sheet2).Range(E6)Office中国社区门户/j U:M%NS&Mi6w&H也可以先激活该工作表,然后再选择:-!L|R%7!My0Sheets(Sheet2).ActivateOffice中国社区门户k8w2l#ETyActiveSheet.Cells(6,5).SelectF)T/o7ix0Office中国社区门户_Pz;FVE8如何选择不同工作簿中的单元格?,X2L5-i0例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:Office中国社区门户G+VkjX _VgApplication.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Cells(7,6)Office中国社区门户fV,o)z或:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Range(F7)Office中国社区门户| T9H2e%FE1_5U也可以先激活该工作簿中的工作表,然后再选择:rV.S!KNM9M.Ip&v#M0Workbooks(BOOK2.XLS).Sheets(Sheet1).ActivateOffice中国社区门户 Q,Q3C+a _wActiveSheet.Cells(7,6).SelectX N5w?(E.ZCc$0Office中国社区门户*Ml 8DA mm4E如何选择当前工作表中的单元格区域?n9Q/i5Vo&b4E0例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码:Office中国社区门户,2to1w sActiveSheet.Range(Cells(2,3),Cells(10,4).SelectOffice中国社区门户+jl-X E+rV;r或:ActiveSheet.Range(C2:D10).SelectS_P_ _0或:ActiveSheet.Range(C2,D10).SelectMmms;?8Y|-_:sr01i+BExWskY)O.0如何选择同一工作簿中另一工作表上的单元格区域?Office中国社区门户$jlP+a;I12n1jg)O例如,要选择同一工作簿中另一工作表上的单元格区域D3:E11,可以使用下面的代码:Office中国社区门户 u3_Ea.j z+rOMCApplication.GotoActiveWorkbook.Sheets(Sheet3).Range(D3:E11)#Ai6FzJ Y1d1Z,B20或:Application.GotoActiveWorkbook.Sheets(Sheet3).Range(D3,E11)Office中国社区门户(d? P0x:by3w&u也可以先激活该工作表,然后再选择:Office中国社区门户O&u1l;_8_LSheets(Sheet3).ActivateM/d0R|9|W0ActiveSheet.Range(Cells(3,4),Cells(11,5).SelectG3S-_/I*Y6M j09b-z7Q l ?qOC0如何选择不同工作簿中工作表上的单元格区域?Office中国社区门户XY5nHX7D6o例如,要选择另一工作簿中某工作表上的单元格区域E4:F12,可以使用下面的代码:L4m J-S0U4x0Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Range(E4:F12)q:z,o4Tw0或:Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet1).Range(E4,F12)vJ3p?zg0也可以先激活该工作表,然后再选择:Office中国社区门户X3z6bnhH)BWorkbooks(BOOK2.XLS).Sheets(Sheet1).ActivateOffice中国社区门户6 YM(S,bDActiveSheet.Range(Cells(4,5),Cells(12,6).Selectq0U+F$TZrE Z PA0Office中国社区门户8XQ5P6I L-如何在当前工作表中选择命名区域?Office中国社区门户vR U y9SL%I5UC.L-r例如,要选择当前工作表中名为“Test”的区域,可以使用下面的代码:W%P( e:T.i0Range(Test).SelectL6Jm w._t0或:Application.GotoTest,Dgz4r!j;dI!08x?g4vdG;t)oe0如何选择同一工作簿中另一工作表上的命名区域?oQb9q I3k H7l_0例如,选择同一工作簿中另一工作表上名为“Test”的区域,可使用下面的代码:8XT f/WY,v*Jq0Application.GotoSheets(Sheet1).Range(Test)Office中国社区门户4v3Euu7T(z也可以先激活工作表,再选择:K5h(N%d+h8u0_PQ0Sheets(Sheet1).ActivateWASm:n;t._Mc0Range(Test).SelectP#H5+WO0x0U k.NkH n8I4CE#R;t0如何选择不同工作簿中工作表上的命名区域?Office中国社区门户:xBi2UQR G8U2例如,要选择不同工作簿中工作表上名为“Test”的区域,可使用下面的代码:nuwYd0Application.GotoWorkbooks(BOOK2.XLS).Sheets(Sheet2).Range(Test)Office中国社区门户;gX iK*z2T/Q也可以先激活工作表,再选择:;QA7S8u*|0Workbooks(BOOK2.XLS).Sheets(Sheet2).ActivateOffice中国社区门户6Bi,Fz2)mRange(Test).SelectOffice中国社区门户3i#l c.YOk$sk U/HOffice中国社区门户7c7Bt!Y)p!q如何选择与当前单元格相关的单元格?Office中国社区门户cIm4R例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码:Office中国社区门户Qp|/E nb2J:iK,lActiveCell.Offset(5,-4).Select$_9g1?Jc0要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码:(k k3ZV9O m8V0ActiveCell.Offset(-2,3).SelectOffice中国社区门户Ra*Uhd-mA1J注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。B4ju M0Wp0Office中国社区门户B3*v:Vn6j/nsh如何选择与另一单元格(不是当前单元格)相关的单元格?+Cs2SL+l+0例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码:Office中国社区门户CEO&3qActiveSheet.Cells(7,3).Offset(5,4).Select+R)Vw nOn0或:ActiveSheet.Range(C7).Offset(5,4).Select/G%g$La0d-BQ4W$ul|(O0如何选择偏离指定区域的一个单元格区域?1|3S hQP0例如,要选择与名为“Test”的区域大小相同但在该区域下方4行右侧3列的一个区域,可以使用下面的代码:K%G8Ge#W5S YW0ActiveSheet.Range(Test).Offset(4,3).SelectOffice中国社区门户$h+k9fa,Dj%K;FL如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码:Office中国社区门户g:m7Fbq Sheets(Sheet3).Activate4Dq_ y6G8uwp0ActiveSheet.Range(Test).Offset(4,3).SelectOffice中国社区门户,l1I9Cs(Juv#VNub tBc0如何选择一个指定的区域并扩展区域的大小?Office中国社区门户2U)AL!PBw pj例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:XKv(u$A;MR+z&U&$c0Range(Database).Select!z1ZrI(dV0Selection.Resize(Selection.Rows.Count+5,Selection.Columns.Count).SelectOffice中国社区门户s?L$h6dF)G*sOffice中国社区门户%d F0MI0?ei$s如何选择一个指定的区域,再偏离,然后扩展区域的大小?Office中国社区门户V1y)RE9c*J7t j&b例如,选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:o%Op!V$T xh0Range(Database).SelectOffice中国社区门户+u&i)O!NSelection.Offset(4,3).Resize(Selection.Rows.Count+2,Selection.Columns.Count+1).SelectOffice中国社区门户4F Sh DV&i R$?%l9eQz60如何选择两个或多个指定区域?Office中国社区门户:vB&?a7Z*例如,为了同时选择名为“Test”和“Sample”的两个区域,可以使用下面的代码:u(V4 An0Application.Union(Range(Test),Range(Sample).Selectj#B%g-Txe*Ff0u0注意,这两个区域须在同一工作表中,如下面的代码:Office中国社区门户 f$i2Q&Xn4PA12b FSety=Application.Union(Range(Sheet1!A1:B2),Range(Sheet1!C3:D4)e;?cL$a1T40但Union方法不能处理不同工作表中的区域,可下面的代码:G(D(G RD-Jiu(M0Sety=Application.Union(Range(Sheet1!A1:B2),Range(Sheet2!C3:D4)e6L;Pj/NT0将会出错。Office中国社区门户Otf4.TOffice中国社区门户 NZJr*n)y:Cj u如何选择两个或多个指定区域的交叉区域?Office中国社区门户9xl6CFft5J例如,要选择名为“Test”和“Sample”的两个区域的交叉区域,可以使用下面的代码:Office中国社区门户 Qy_)i4J&pApplication.Intersect(Range(Test),Range(Sample).Selects&|1v9knb.O0注意,两个区域必须在同一工作表中。Office中国社区门户K0N$XL#? GX.AUOffice中国社区门户 Dd2Q c|*u如何选择连续数据列中的最后一个单元格?Office中国社区门户!wB sBQXqk5T(!D例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:6t(MH XB-iG0ActiveSheet.Range(a1).End(xlDown).SelectOffice中国社区门户o+/p!kBk,O该代码使用在上面的工作表中,单元格A4被选择。&d cL0dl3z&p#_ L0T+P%g0VX7bfo#Dz70如何选择连续数据列底部的空单元格?8VG7anm8d0例如,要选择连续单元格区域下面的单元格,可以使用下面的代码:,l9e9b/B!T1MX hP0ActiveSheet.Range(a1).End(xlDown).Offset(1,0).Selectz0tIx5j6h0该代码使用在上面的工作表中,单元格A5被选择。Office中国社区门户X/WX*I 4v9dOffice中国社区门户GO(xp!Jp$LA1V:Y如何选择某列中连续数据单元格区域?!k#J&E O,ph0例如,要选择一列中的连续数据单元格区域,可以使用下面的代码:Office中国社区门户e;P2v$U7VActiveSheet.Range(a1,ActiveSheet.Range(a1).End(xlDown).Select:B;wgUBJ0或:ActiveSheet.Range(a1:&ActiveSheet.Range(a1).End(xlDown).Address).SelectOffice中国社区门户Y!Z:q&Y:py Na该代码使用在上面的工作表中,单元格区域A1:A4将被选择。m;pQO0-KK*de(V+*!g0如何选择某列中非连续数据单元格区域?oxn/i l0例如,要选择某列中非连续数据单元格区域,可以使用下面的代码:UlaUL_9DA0ActiveSheet.Range(a1,ActiveSheet.Range(a65536).End(xlUp).SelectaT aU%N IH0或:ActiveSheet.Range(a1:&ActiveSheet.Range(a65536).End(xlUp).Address).Selectn-c!D0该代码使用在上面的工作表中,单元格区域A1:A6将被选择。#oO;hs|Z,Vp5m!K0j&T j*t&|0如何选择一个矩形(规则的)单元格区域?Office中国社区门户 fem A!I J要选择围绕某单元格的一个矩形区域,可以使用CurrentRegion方法。CurrentRegion方法将选择四周被空行和空列围绕的区域,如下面的代码:Office中国社区门户)Z(x*m%!H-oActiveSheet.Range(a1).CurrentRegion.SelectA Ot)ItR0该代码使用在上面的工作表中,将选择单元格区域A1:C4。也可以使用下面的代码:f_Lv z*O8Cf0ActiveSheet.Range(a1,ActiveSheet.Range(a1).End(xlDown).End(xlToRight).SelectOffice中国社区门户#dEr1V E或:yHK:O 9?uVv0ActiveSheet.Range(a1:&ActiveSheet.Range(a1).End(xlDown).End(xlToRight).Address).SelectOffice中国社区门户*Pl N%h SS#F k若想选择单元格区域A1:C6,可使用下面的代码:-dcR t,EBm0lastCol=ActiveSheet.Range(a1).End(xlToRight).ColumnVbzD5_v10lastRow=ActiveSheet.Cells(65536,lastCol).End(xlUp).RowOffice中国社区门户,m L6p9t!J/pActiveSheet.Range(a1,ActiveSheet.Cells(lastRow,lastCol).SelectOffice中国社区门户(k*/W,l:_XTF或:i vD2l Lp_0lastCol=ActiveSheet.Range(a1).End(xlToRight).ColumnOffice中国社区门户$/yf.HMYN ?$qlastRow=ActiveSheet.Cells(65536,lastCol).End(xlUp).Row1k7m!(0N9t SP,h0ActiveSheet.Range(a1:&ActiveSheet.Cells(lastRow,lastCol).Address).SelectwUT+gS0bW O_ej0如何选择多个不同长度的非连续列?Office中国社区门户f)3VL#Y|要同时选择A列和C列中的数据,即单元格区域A1:A3和C1:C6,可使用下面的代码:Office中国社区门户 F$fe2e,HStartRange=A1Office中国社区门户9r;oe3IonkEndRange=C1%s tDd_0Seta=Range(StartRange,Range(StartRange).End(xlDown)E j1f4lx/Y0Setb=Range(EndRange,Range(EndRange).End(xlDown)Office中国社区门户8B1L)i%uWG8Union(a,b).Select+JjsZ,G#V40注:使用Application.Goto方法,如果指定另一工作表(不是当前工作表)中的指定区域,在Range属性中使用两个Cells属性时,则必须包括Sheets对象,如:(G2l FxL0Application.GotoSheets(Sheet1).Range(Sheets(Sheet1).Range(Sheets(Sheet1).Cells(2,3),Sheets(Sheet1).Cells(4,5)Office中国社区门户h#y(#Xr$ZS?:_Office中国社区门户+r&kMC3bOffice中国社区门户 a7d-s_pD A3c在VBA中,Range对象既可表示单个单元格,也可表示单元格区域。下面的内容说明了标识和处理Range对象最常用的方法。Office中国社区门户,U Uu-|I.aiQh8%d0引用工作表上的所有单元格f&MJ8Vq2Q0如果对工作表应用Cells属性时不指定索引号,该方法将返回代表工作表上所有单元格的Range对象。以下Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。Office中国社区门户%!E9UTB nSubClearSheet()1L A bM7%e!yX j)G:o)g0Worksheets(Sheet1).Cells.ClearContents.3pc UW0EndSubOffice中国社区门户.lD_-)hP.U*d6;H8w;d8y Cx*qW0使用A1表示法引用单元格和区域ULPP3o0可使用Range属性引用A1引用样式中的单元格或单元格区域。下述子例程将单元格区域A1:D5的字体设置为加粗。Office中国社区门户HMO$ZASubFormatRange()Office中国社区门户;x4rJal-LWorkbooks(Book1).Sheets(Sheet1).Range(A1:D5)_Office中国社区门户 sxf,rdK)N E.Font.Bold=TrueOffice中国社区门户m;SETEndSub*W?FV)VtcJ0下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论