Excel VBA命令大全.docx
- 文档编号:5296827
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:15
- 大小:35.15KB
Excel VBA命令大全.docx
《Excel VBA命令大全.docx》由会员分享,可在线阅读,更多相关《Excel VBA命令大全.docx(15页珍藏版)》请在冰豆网上搜索。
ExcelVBA命令大全
本示例为设置密码窗口
(1)IfApplication.InputBox("请输入密码:
")=1234Then[A1]=1'密码正确时执行Else:
MsgBox"密码错误,即将退出!
"'此行与第2行共同设置密码EndIf
本示例为设置密码窗口
(1)X=MsgBox("是否真的要结帐?
",vbYesNo)IfX=vbYesThenClose
本示例为设置工作表密码ActiveSheet.ProtectPassword:
=641112'保护工作表并设置密码ActiveSheet.UnprotectPassword:
=641112'撤消工作表保护并取消密码'
本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。
ForEachwInWorkbooksIfw.NameThisWorkbook.NameThenw.CloseSaveChanges:
=TrueEndIfNextw'每次打开工作簿时,本示例都最大化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=TrueThisWorkbook.Close'
本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一张工作表自动进行重新计算。
Worksheets
(1).EnableCalculation=False'下述过程打开C盘上名为MyFolder的文件夹中的MyBook.xls工作簿。
Workbooks.Open("C:
/MyFolder/MyBook.xls")'本示例显示活动工作簿中工作表sheet1上单元格A1中的值。
MsgBoxWorksheets("Sheet1").Range("A1").Value本示例显示活动工作簿中每个工作表的名称ForEachwsInWorksheetsMsgBoxws.NameNextws本示例向活动工作簿添加新工作表,并设置该工作表的名称?
SetNewSheet=Worksheets.AddNewSheet.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.CountNewSheet.Cells(i,1).Value=Sheets(i).NameNexti本示例将第十行移到窗口的最上面?
Worksheets("Sheet1").ActivateActiveWindow.ScrollRow=10当计算工作簿中的任何工作表时,本示例对第一张工作表的A1:
A100区域进行排序。
'PrivateSubWorkbook_SheetCalculate(ByValShAsObject)WithWorksheets
(1).Range("a1:
a100").SortKey1:
=.Range("a1")EndWithEndSub本示例显示工作表Sheet1的打印预览。
Worksheets("Sheet1").PrintPreview本示例保存当前活动工作簿?
ActiveWorkbook.Save本示例保存所有打开的工作簿,然后关闭MicrosoftExcel。
ForEachwInApplication.Workbooksw.SaveNextwApplication.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").AutoFitEndSub本示例使活动工作簿中的计算仅使用显示的数字精度。
ActiveWorkbook.PrecisionAsDisplayed=True本示例将工作表Sheet1上的A1:
G37区域剪下,并放入剪贴板。
Worksheets("Sheet1").Range("A1:
G37").CutCalculate方法计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示:
'要计算'依照本示例所有打开的工作簿'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.AddDofName=Application.GetSaveAsFilenameLoopUntilfNameFalseNewBook.SaveAsFilename:
=fName本示例打开Analysis.xls工作簿,然后运行Auto_Open宏。
Workbooks.Open"ANALYSIS.XLS"ActiveWorkbook.RunAutoMacrosxlAutoOpen本示例对活动工作簿运行Auto_Close宏,然后关闭该工作簿。
WithActiveWorkbook.RunAutoMacrosxlAutoClose.CloseEndWith在本示例中,MicrosoftExcel向用户显示活动工作簿的路径和文件名称。
'SubUseCanonical()Displaythefullpathtouser.MsgBoxActiveWorkbook.FullNameURLEncodedEndSub本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)。
MsgBoxActiveWorkbook.FullName本示例关闭Book1.xls,并放弃所有对此工作簿的更改。
Workbooks("BOOK1.XLS").CloseSaveChanges:
=False本示例关闭所有打开的工作簿。
如果某个打开的工作簿有改变,MicrosoftExcel将显示询问是否保存更改的对话框和相应提示。
Workbooks.Close本示例在打印之前对当前活动工作簿的所有工作表重新计算?
'PrivateSubWorkbook_BeforePrint(CancelAsBoolean)ForEachwkInWorksheetswk.CalculateNextEndSub本示例对查询表一中的第一列数据进行汇总,并在数据区域下方显示第一列数据的总和。
Setc1=Sheets("sheet1").QueryTables
(1).ResultRange.Columns
(1)c1.Name="Column1"c1.End(xlDown).Offset(2,0).Formula="=sum(Column1)"本示例取消活动工作簿中的所有更改?
ActiveWorkbook.RejectAllChanges本示例在商业问题中使用规划求解函数,以使总利润达到最大值。
SolverSave函数将当前问题保存到活动工作表上的某一区域。
Worksheets("Sheet1").ActivateSolverResetSolverOptionsPrecision:
=0.001SolverOKSetCell:
=Range("TotalProfit"),_MaxMinVal:
=1,_ByChange:
=Range("C4:
E6")SolverAddCellRef:
=Range("F4:
F6"),_Relation:
=1,_FormulaText:
=100SolverAddCellRef:
=Range("C4:
E6"),_Relation:
=3,_FormulaText:
=0SolverAddCellRef:
=Range("C4:
E6"),_Relation:
=4SolverSolveUserFinish:
=FalseSolverSaveSaveArea:
=Range("A33")本示例隐藏Chart1、Chart3和Chart5。
Charts(Array("Chart1","Chart3","Chart5")).Visible=False当激活工作表时,本示例对A1:
A10区域进行排序。
'PrivateSubWorksheet_Activate()Range("a1:
a10").SortKey1:
=Range("a1"),Order:
=xlAscendingEndSub本示例更改MicrosoftExcel链接。
ActiveWorkbook.ChangeLink"c:
/excel/book1.xls",_"c:
/excel/book2.xls",xlExcelLinks本示例启用受保护的工作表上的自动筛选箭头?
ActiveSheet.EnableAutoFilter=TrueActiveSheet.Protectcontents:
=True,userInterfaceOnly:
=True本示例将活动工作簿设为只读?
ActiveWorkbook.ChangeFileAccessMode:
=xlReadOnly本示例使共享工作簿每三分钟自动更新一次?
ActiveWorkbook.AutoUpdateFrequency=3下述Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。
'SubClearSheet()Worksheets("Sheet1").Cells.ClearContentsEndSub本示例对所有工作簿都关闭滚动条?
Application.DisplayScrollBars=False如果具有密码保护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项。
'SubSetPasswordOptions()WithActiveWorkbookIf.PasswordEncryptionProvider"MicrosoftRSASChannelCryptographicProvider"Then.SetPasswordEncryptionOptions_PasswordEncryptionProvider:
="MicrosoftRSASChannelCryptographicProvider",_PasswordEncryptionAlgorithm:
="RC4",_PasswordEncryptionKeyLength:
=56,_PasswordEncryptionFileProperties:
=TrueEndIfEndWithEndSub在本示例中,如果活动工作簿不能进行写保护,那么MicrosoftExcel设置字符串密码以作为活动工作簿的写密码。
'SubUseWritePassword()DimstrPasswordAsStringstrPassword="secret"'Setpasswordtoastringifallowed.IfActiveWorkbook.WriteReserved=FalseThenActiveWorkbook.WritePassword=strPasswordEndIfEndSub在本示例中,MicrosoftExcel打开名为Password.xls的工作簿,设置它的密码,然后关闭该工作簿。
本示例假定名为Password.xls的文件位于C:
/驱动器上。
'SubUsePassword()DimwkbOneAsWorkbookSetwkbOne=Application.Workbooks.Open("C:
/Password.xls")wkbOne.Password="secret"wkbOne.Close'注意Password属性可读并返回“********”。
EndSub本示例将Book1.xls的当前窗口更改为显示公式。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").ActivateActiveWindow.DisplayFormulas=True'本示例接受活动工作簿中的所有更改?
ActiveWorkbook.AcceptAllChanges本示例显示活动工作簿的路径和名称SubUseCanonical()MsgBox'消息框[b7]=ActiveWorkbook.FullName'当前工作簿[b8]=ActiveWorkbook.FullNameURLEncoded'活动工作簿EndSub本示例显示MicrosoftExcel启动文件夹的完整路径。
MsgBoxApplication.StartupPath本示例显示活动工作簿中每个工作表的名称。
ForEachwsInWorksheetsMsgBoxws.NameNextws本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。
ForEachwInWorkbooksIfw.NameThisWorkbook.NameThenw.Closesavechanges:
=TrueEndIfNextwActivate事件激活一个工作簿、工作表、图表或嵌入图表时产生此事件。
当激活工作表时,本示例对A1:
A10区域进行排序。
PrivateSubWorksheet_Activate()Range("a1:
a10").SortKey1:
=Range("a1"),Order:
=xlAscendingEndSubCalculate事件对于Worksheet对象,在对工作表进行重新计算之后产生此事件每当工作表重新计算时,本示例就调整A列到F列的宽度。
PrivateSubWorksheet_Calculate()Columns("A:
F").AutoFitEndSubBeforeDoubleClick事件应用于Worksheet对象的Activate方法。
当双击某工作表时产生此事件,此事件先于默认的双击操作。
PrivateSubexpression_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)expression引用在类模块中带有事件声明的Worksheet类型对象的变量。
Target必需。
双击发生时最靠近鼠标指针的单元格。
Cancel可选。
当事件发生时为False。
如果事件过程将该参数设为True,则该过程执行完之后将不进行默认的双击操作。
BeforeRightClick事件应用于Worksheet对象的Activate方法。
当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作。
PrivateSubexpression_BeforeRightClick(ByValTargetAsRange,CancelAsBoolean)expression引用在类模块中带有事件声明的Worksheet类型对象的变量。
Target必需。
右键单击发生时最靠近鼠标指针的单元格。
Cancel可选。
当事件发生时为False。
如果该事件过程将本参数设为True,则该过程执行结束之后不进行默认的右键单击操作。
Change事件当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件。
PrivateSubWorksheet_Change(ByValTargetAsRange)Target更改的区域。
可以是多个单元格。
说明重新计算引起的单元格更改不触发本事件。
可使用Calculate事件俘获工作表重新计算操作。
本示例将更改的单元格的颜色设为蓝色。
PrivateSubWorksheet_Change(ByValTargetasRange)Target.Font.ColorIndex=5EndSubDeactivate事件图表、工作表或工作簿从活动状态转为非活动状态时产生此事件。
PrivateSubobject_Deactivate()objectChart、Workbook或者Worksheet。
有关对Chart对象使用事件的详细信息,请参阅Chart对象事件的用法。
本示例当工作簿转为非活动状态时,对所有打开的窗口进行排列。
PrivateSubWorkbook_Deactivate()Application.Windows.ArrangexlArrangeEndSubFollowHyperlink事件当单击工作表上的任意超链接时,发生此事件。
对于应用程序级或工作簿级的事件,请参阅SheetFollowHyperlink事件。
PrivateSubWorksheet_FollowHyperlink(ByValTargetAsHyperlink)TargetHyperlink类型,必需。
一个代表超链接目标位置的Hyperlink对象。
本示例对在当前活动工作簿中访问过的所有链接保留一个列表或历史记录。
PrivateSubWorksheet_FollowHyperlink(ByValTargetAsHyperlink)WithUserForm1.ListBox1.AddItemTarget.Address.ShowEndWithEndSubPivotTableUpdate事件发生在工作簿中的数据透视表更新之后。
PrivateSubexpression_PivotTableUpdate(ByValTargetAsPivotTable)expression引用在类模块中带有事件声明的Worksheet类型对象的变量。
Target必需。
选定的数据透视表。
本示例显示一则消息,说明数据透视表已经更新。
本示例假定您已在类模块中声明了带有事件的Worksheet类型的对象。
PrivateSubWorksheet_PivotTableUpdate(ByValTargetAsPivotTable)MsgBox"ThePivotTableconnectionhasbeenupdated."EndSubSelectionChange事件当工作表上的选定区域发生改变时,将产生本事件。
PrivateSubWorksheet_SelectionChange(ByValTargetAsExcel.Range)Target新选定的区域。
本示例滚动工作簿窗口,直至选定区域位于窗口的左上角。
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)WithActiveWindow.ScrollRow=Target.Row.ScrollColumn=Target.ColumnEndWithEndSub本示例显示活动工作簿中工作表sheet1上单元格A1中的值。
MsgBoxWorksheets("Sheet1").Range("A1").Value本示例显示活动工作簿中每个工作表的名称。
ForEachwsInWorksheetsMsgBoxws.NameNextws本示例向活动工作簿添加新工作表,并设置该工作表的名称。
SetnewSheet=Worksheets.AddnewSheet.Name="currentBudget"本示例关闭工作簿Book1.xls,但不提示用户保存所作更改。
Book1.xls中的所有更改都不会保存。
Application.DisplayAlerts
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel VBA命令大全 VBA 命令 大全