Excel中各种VBA写法.docx
- 文档编号:2060813
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:22
- 大小:25.75KB
Excel中各种VBA写法.docx
《Excel中各种VBA写法.docx》由会员分享,可在线阅读,更多相关《Excel中各种VBA写法.docx(22页珍藏版)》请在冰豆网上搜索。
Excel中各种VBA写法
Excel中各种VBA写法
工作簿对象事件一览表
当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。
工作簿上的事件在默认情况下是可用的。
若要查看工作簿的事件过程,请用鼠标右键单击处于还原状态或最小化状态的工作簿窗口标题栏,再单击快捷菜单上的“查看代码”。
在“过程”下拉列表框选择事件名称。
事件说明
Activate激活工作薄时
AddinInstall当工作簿作为加载宏安装时
AddinUninstall工作簿作为加载宏卸载时
BeforeClose关闭工作薄前
BeforePrint打印工作薄(或其中任何容)之前
BeforeSave保存工作薄前
Deactivate工作簿从活动状态转为非活动状态时
NewSheet在工作簿中新建工作表时
Open打开工作簿时
PivotTableCloseConnection在数据透视表关闭与其数据源的连接之后
PivotTableOpenConnection在数据透视表打开与其数据源的连接之后
SheetActivate激活任何一表时
SheetBeforeDoubleClick双击任何工作表时
SheetBeforeRightClick鼠标右键单击任一工作表时
SheetCalculate工作表重新计算时
SheetChange更改工作表中的单元格时
SheetDeactivate任一工作表由活动状态转为非活动状态时
SheetFollowHyperlink单击MicrosoftExcel中的任意超时
SheetPivotTableUpdate数据透视表的工作表更新之后
SheetSelectionChange工作簿中的数据透视表更新之后
WindowActivate工作簿的窗口激活时
WindowDeactivate工作簿的窗口变为非活动状态时
WindowResize工作簿窗口调整大小时
工作表事件一览表
工作表上的事件在默认情况下是可用的。
若要查看工作表的事件过程,请用鼠标右键单击工作表标签,再单击快捷菜单上的“查看代码”。
在“过程”下拉列表框选择事件名称。
事件说明
Activate激活工作表时
Deactivate工作表从活动状态转为非活动状态时
BeforeDoubleClick双击工作表前
BeforeRightClick右键单击工作表时
Calculate对工作表进行重新计算之后
Change更改工作表中的单元格,或外部引起单元格时
FollowHyperlink单击工作表上的任意超时
PivotTableUpdate在工作簿中的数据透视表更新之后
SelectionChange工作表上的选定区域发生改变时
再贴一堆代码
例为设置密码窗口
(1)
IfApplication.InputBox("请输入密码:
")=1234Then
[A1]=1'密码正确时执行
Else:
MsgBox"密码错误,即将退出!
"'此行与第2行共同设置密码
EndIf
本示例为设置密码窗口
(1)
X=MsgBox("是否真的要结帐?
",vbYesNo)
IfX=vbYesThen
Close
本示例为设置工作表密码
ActiveSheet.ProtectPassword:
=641112'保护工作表并设置密码
ActiveSheet.UnprotectPassword:
=641112'撤消工作表保护并取消密码
'本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改容
。
ForEachwInWorkbooks
Ifw.NameThisWorkbook.NameThen
w.CloseSaveChanges:
=True
EndIf
Nextw
'每次打开工作簿时,本示例都最大化MicrosoftExcel窗口。
Application.WindowState=xlMaximized
'本示例显示活动工作表的名称。
MsgBox"Thenameoftheactivesheetis"&ActiveSheet.Name
'本示例保存当前活动工作簿的副本。
ActiveWorkbook.SaveCopyAs"C:
\TEMP\XXXX.XLS"
'下述过程激活工作簿中的第四工作表。
Sheets(4).Activate
'下述过程激活工作簿中的第1工作表。
Worksheets
(1).Activate
'本示例通过将Saved属性设为True来关闭包含本段代码的工作簿,并放弃对该
工作簿的任何更改。
ThisWorkbook.Saved=True
ThisWorkbook.Close
'本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一工作表自
动进行重新计算。
Worksheets
(1).EnableCalculation=False
'下述过程打开C盘上名为MyFolder的文件夹中的MyBook.xls工作簿。
Workbooks.Open("C:
\MyFolder\MyBook.xls")
'本示例显示活动工作簿中工作表sheet1上单元格A1中的值。
MsgBoxWorksheets("Sheet1").Range("A1").Value
本示例显示活动工作簿中每个工作表的名称
ForEachwsInWorksheets
MsgBoxws.Name
Nextws
本示例向活动工作簿添加新工作表,并设置该工作表的名称?
SetNewSheet=Worksheets.Add
NewSheet.Name="currentBudget"
本示例将新建的工作表移到工作簿的末尾
'PrivateSubWorkbook_NewSheet(ByValShAsObject)
Sh.MoveAfter:
=Sheets(Sheets.Count)
EndSub
本示例将新建工作表移到工作簿的末尾
'PrivateSubApp_WorkbookNewSheet(ByValWbAsWorkbook,_
ByValShAsObject)
Sh.MoveAfter:
=Wb.Sheets(Wb.Sheets.Count)
EndSub
本示例新建一工作表,然后在第一列中列出活动工作簿中的所有工作表的名称。
SetNewSheet=Sheets.Add(Type:
=xlWorksheet)
Fori=1ToSheets.Count
NewSheet.Cells(i,1).Value=Sheets(i).Name
Nexti
本示例将第十行移到窗口的最上面?
Worksheets("Sheet1").Activate
ActiveWindow.ScrollRow=10
当计算工作簿中的任何工作表时,本示例对第一工作表的A1:
A100区域进行排序
。
'PrivateSubWorkbook_SheetCalculate(ByValShAsObject)
WithWorksheets
(1)
.Range("a1:
a100").SortKey1:
=.Range("a1")
EndWith
EndSub
本示例显示工作表Sheet1的打印预览。
Worksheets("Sheet1").PrintPreview
本示例保存当前活动工作簿?
ActiveWorkbook.Save
本示例保存所有打开的工作簿,然后关闭MicrosoftExcel。
ForEachwInApplication.Workbooks
w.Save
Nextw
Application.Quit
下例在活动工作簿的第一工作表前面添加两新的工作表?
Worksheets.AddCount:
=2,Before:
=Sheets
(1)
本示例设置15秒后运行my_Procedure过程,从现在开始计时。
Application.OnTimeNow+TimeValue("00:
00:
15"),"my_Procedure"
本示例设置my_Procedure在下午5点开始运行。
Application.OnTimeTimeValue("17:
00:
00"),"my_Procedure"
本示例撤消前一个示例对OnTime的设置。
Application.OnTimeEarliestTime:
=TimeValue("17:
00:
00"),_
Procedure:
="my_Procedure",Schedule:
=False
每当工作表重新计算时,本示例就调整A列到F列的宽度。
'PrivateSubWorksheet_Calculate()
Columns("A:
F").AutoFit
EndSub
本示例使活动工作簿中的计算仅使用显示的数字精度。
ActiveWorkbook.PrecisionAsDisplayed=True
本示例将工作表Sheet1上的A1:
G37区域剪下,并放入剪贴板。
Worksheets("Sheet1").Range("A1:
G37").Cut
Calculate方法
计算所有打开的工作簿、工作簿中的一特定的工作表或者工作表中指定区域的单元
格,如下表所示:
'要计算'依照本示例
所有打开的工作簿'Application.Calculate(或只是Calculate
)
指定工作表'计算指定工作表Sheet1Worksheets
("Sheet1").Calculate
指定区域'Worksheets
(1).Rows
(2).Calculate
本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一工作表自动
进行重新计算。
Worksheets
(1).EnableCalculation=False
本示例计算Sheet1已用区域中A列、B列和C列的公式。
Worksheets("Sheet1").UsedRange.Columns("A:
C").Calculate
本示例更新当前活动工作簿中的所有?
ActiveWorkbook.UpdateLinkName:
=ActiveWorkbook.LinkSources
本示例设置第一工作表的滚动区域?
Worksheets
(1).ScrollArea="a1:
f10"
本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿。
SetNewBook=Workbooks.Add
Do
fName=Application.GetSaveAsFilename
LoopUntilfNameFalse
NewBook.SaveAsFilename:
=fName
本示例打开Analysis.xls工作簿,然后运行Auto_Open宏。
Workbooks.Open"ANALYSIS.XLS"
ActiveWorkbook.RunAutoMacrosxlAutoOpe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 各种 VBA 写法