Excel中用VBA-Worksheet基本操作应用示例 下载本文

内容发布更新时间 : 2024/5/8 6:40:16星期一 下面是文章的全部内容请认真阅读。

示例02-19:改变窗口的高度和宽度 Sub ChangeHeightAndWidth()

Dim iWinHeight As Long, iWinWidth As Long ActiveWindow.WindowState = xlNormal MsgBox \将当前窗口的高度和宽度各减一半\ iWinHeight = ActiveWindow.Height iWinWidth = ActiveWindow.Width

ActiveWindow.Height = iWinHeight / 2 ActiveWindow.Width = iWinWidth / 2 MsgBox \恢复原窗口大小\

ActiveWindow.Height = iWinHeight ActiveWindow.Width = iWinWidth End Sub

示例说明:Height属性和Width属性必须在窗口处于正常显示状态(即不是最大化或最小化状态)时使用,否则会出错。

示例02-20:移动窗口 Sub SetWindowPosition()

Dim iTop As Long, iLeft As Long

MsgBox \将当前窗口向下移60,向右移90\ ActiveWindow.WindowState = xlNormal iTop = ActiveWindow.Top iLeft = ActiveWindow.Left ActiveWindow.Top = iTop + 60 ActiveWindow.Left = iLeft + 90 MsgBox \恢复原来窗口的位置\ ActiveWindow.Top = iTop ActiveWindow.Left = iLeft End Sub

示例说明:Top属性和Left属性必须在窗口处于正常显示状态(即不是最大化或最小化状态)时使用,否则会出错。

示例02-21:并排比较窗口 Sub testCompare()

MsgBox \与工作簿Book2进行并排比较\ Windows.CompareSideBySideWith \

MsgBox \启动窗口滚动功能,使两个窗口同时滚动\ Windows.SyncScrollingSideBySide = True MsgBox \将工作簿Book2最小化\

Windows(\ MsgBox \重置并排比较显示,恢复并排比较\ Windows.ResetPositionsSideBySide MsgBox \关闭并排比较\

ActiveWorkbook.Windows.BreakSideBySide

End Sub 示 例说明:在运行本示例前,确保在本窗口外还打开了一个名为Book2的窗口,或者您打开了一个其它命名的窗口,相应将上面程序中的Book2更换为您的窗 口名。CompareSideBySideWith方法将以并排模式打开两个窗口,其中一个是当前活动窗口,另一个就是该方法所指定的窗口,如本例中的 Book2。

SyncScrollingSideBySide属性设置是否将两个窗口的滚动保持同步,如果为True,在对文档进行并排比较的同时启用窗 口内容的滚动功能。若为False,则在对文档进行并排比较的同时禁用窗口内容的滚动功能。

ResetPositionsSideBySide方法重置正 在进行并排比较的两个工作表窗口的位置,例如,如果用户将正在进行比较的两个工作表窗口中的其中一个窗框最小化或最大化,就可以使用 ResetPositionsSideBySide方法重置显示,以便这两个窗口再次并排显示。BreakSideBySide方法用来关闭并排比较。

[NextPage] 示例02-22:返回或设置窗口中显示的视图(View属性) Sub testView()

MsgBox \将视图切换为分页预览\

ActiveWindow.View = xlPageBreakPreview MsgBox \窗口视图为:\ MsgBox \将视图恢复正常\

ActiveWindow.View = xlNormalView

MsgBox \窗口视图为:\End Sub

示例02-23:返回窗口中可见单元格区域(VisibleRange属性) Sub testVisibleRange()

MsgBox \当前窗口中共有\个单元格可见\End Sub

示例说明:如果窗口中有部分行列的单元格可见,也包括在可见单元格区域中。

示例02-24:创建窗口(NewWindow方法) Sub testNewWindow()

MsgBox \为活动窗口创建一个副本\ ActiveWindow.NewWindow

MsgBox \所创建窗口的窗口号为\End Sub

示 例说明:本示例中,NewWindow方法为指定窗口(本例中为当前活动窗口)创建一个副本,然后显示该副本窗口的窗口号。注意,窗口号与窗口索引 (Index属性)的不同,例如名称为“Book1.xls:2”的窗口,其窗口号为2,而窗口索引为该窗口在Windows集合中的位置,可以为窗口名 称或编号。

示例02-25:设置窗口大小(Zoom属性) Sub testWindowDisplaySize()

MsgBox \将窗口大小设置为与选定区域相适应的大小\

ActiveWindow.Zoom = True MsgBox \以双倍大小显示窗口\ ActiveWindow.Zoom = 200 MsgBox \以正常大小显示窗口\ ActiveWindow.Zoom = 100 End Sub 示 例说明:Zoom属性将以百分数的形式(100表示正常大小,200表示双倍大小,以此类推)返回或设置窗口的显示大小。如果本属性为 True,则可将窗口大小设置成与当前选定区域相适应的大小。本功能仅对窗口中当前的活动工作表起作用,若要对其他工作表使用本属性,必须先激活该工作 表。

示例02-26:激活窗口(ActivateNext方法和ActivatePrevious方法) [示例02-26-01]

Sub testActivateWindow1()

MsgBox \若已打开Book1.xls、Book2.xls和Book3.xls三个工作簿且

Book1.xls为当前窗口\则按Book3.xls-Book2.xls-Book1.xls依次激活窗口\

ActiveWindow.ActivateNext

MsgBox \激活工作簿:\ ActiveWindow.ActivateNext

MsgBox \激活工作簿:\ ActiveWindow.ActivateNext

MsgBox \激活工作簿:\End Sub

[示例02-26-02]

Sub testActivateWindow2()

MsgBox \若已打开Book1.xls、Book2.xls和Book3.xls三个工作簿且Book1.xls为当前窗口\则按Book2.xls-Book3.xls-Book1.xls依次激活窗口\

ActiveWindow.ActivatePrevious

MsgBox \激活工作簿:\ ActiveWindow.ActivatePrevious

MsgBox \激活工作簿:\ ActiveWindow.ActivatePrevious

MsgBox \激活工作簿:\End Sub

示例02-27:滚动窗口(LargeScroll方法和SmallScroll方法) [示例02-27-01] Sub testScroll1()

MsgBox \将当前窗口向下滚动3页并向右滚动1页\ ActiveWindow.LargeScroll Down:=3, ToRight:=1 End Sub

示例说明:LargeScroll方法将按页滚动窗口的内容,其语法为

expression.LargeScroll(Down, Up, ToRight, ToLeft), 带有4个可选的参数,其中参数Down表示将窗口内容向下滚动的页数;参数Up表示将窗口内容向上滚动的页数;参数ToRight表示将窗口内容向右滚动 的页数;参数ToLeft表示将窗口内容向左滚动的页数。如果同时指定了Down和Up,窗口内容上下方向滚动的页数由这两个参数的差决定,例如,如果 Down为3,Up为6,则窗口向上滚动三页。如果同时指定了ToLeft和ToRight,窗口内容左右方向滚动的页数由这两个参数的差决定,例如,如 果ToLeft为3,ToRight为 6,则窗口向右滚动三页。所有这四个参数都可以使用负数。 [示例02-27-02] Sub testScroll2()

MsgBox \将当前活动窗口向下滚动3行\ ActiveWindow.SmallScroll down:=3 End Sub

示例说明:SmallScroll方法按行或列滚动窗口,其语法为expression.SmallScroll(Down, Up, ToRight, ToLeft), 带有4个可选的参数,其中参数Down表示将窗口内容向下滚动的行数;参数Up表示将窗口内容向上滚动的列数;参数ToRight表示将窗口内容向右滚动 的列数;参数ToLeft表示将窗口内容向左滚动的列数。如果同时指定了Down和Up,则窗口内容滚动的行数由这两个参数的差值决定,例如,如果 Down为3,Up为6,则窗口内容向上滚动三行。如果同时指定了ToLeft和ToRight,则窗口内容滚动的列数由这两个参数的差值决定,例如,如 果ToLeft为3,ToRight为 6,则窗口内容向右滚动三列。以上四个参数均可取负值。

示例02-28:测试所选单元格宽度和高度 Sub testWidthOrHeight()

Dim lWinWidth As Long, lWinHeight As Long With ActiveWindow

lWinWidth = .PointsToScreenPixelsX(.Selection.Width) lWinHeight = .PointsToScreenPixelsY(.Selection.Height) End With

MsgBox \当前选定单元格宽度为:\ \当前选定单元格高度为:\End Sub

示例02-29:关闭窗口(Close方法) Sub CloseWindow()

MsgBox \关闭当前窗口\ ActiveWindow.Close End Sub

示例说明:本示例运行后,将关闭当前窗口。如果当前窗口未保存,则会弹出询问是否保存的消息框供选择。

Workbook对象代表工作簿,而Workbooks集合则包含了当前所有的工作簿。下面对Workbook对象的重要的方法和属性以及其它一些可能涉及到的方法和属性进行示例介绍,同时,后面的示例也深入介绍了一些工作簿对象操作的方法和技巧。

示例03-01:创建工作簿(Add方法) [示例03-01-01]

Sub CreateNewWorkbook1()

MsgBox \将创建一个新工作簿.\ Workbooks.Add End Sub

[示例03-01-02]

Sub CreateNewWorkbook2() Dim wb As Workbook Dim ws As Worksheet Dim i As Long

MsgBox \将创建一个新工作簿,并预设工作表格式.\ Set wb = Workbooks.Add Set ws = wb.Sheets(1) ws.Name = \产品汇总表\ ws.Cells(1, 1) = \序号\ ws.Cells(1, 2) = \产品名称\ ws.Cells(1, 3) = \产品数量\ For i = 2 To 10

ws.Cells(i, 1) = i - 1 Next i End Sub

示例03-02:添加并保存新工作簿 Sub AddSaveAsNewWorkbook() Dim Wk As Workbook Set Wk = Workbooks.Add

Application.DisplayAlerts = False

Wk.SaveAs Filename:=\End Sub

示例说明:本示例使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xls保存在D盘中。其中,语句

Application.DisplayAlerts = False表示禁止弹出警告对话框。

示例03-03:打开工作簿(Open方法) [示例03-03-01]

Sub openWorkbook1()

Workbooks.Open \需打开文件的路径>\\<文件名>\End Sub