1、EXCEL常用宏技巧Excel-常用宏技巧1、 设置密码窗口 12、 本示例为设置提示窗口 23、 本示例为设置工作表保护密码 24、 本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容 25、 每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口 26、 本示例显示活动工作表的名称 27、 本示例保存当前活动工作簿的副本 28、 下述过程激活工作簿中的第四张工作表 39、 下述过程激活工作簿中的第1张工作表 310、 本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改 311、 本示例对自动重新计算功能
2、进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算 312、 下述过程打开 C 盘上名为 MyFolder 的文件夹中的 MyBook.xls 工作簿 313、 本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值 314、 本示例显示活动工作簿中每个工作表的名称 315、 本示例向活动工作簿添加新工作表 , 并设置该工作表的名称 416、 本示例将新建的工作表移到工作簿的末尾 417、 本示例将新建工作表移到工作簿的末尾 418、 本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称 419、 本示例将第十行移到窗口的最上面? 42
3、0、 当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序 521、 本示例显示工作表 Sheet1 的打印预览 522、 本示例保存当前活动工作簿? 523、 本示例保存所有打开的工作簿,然后关闭 Microsoft Excel 524、 下例在活动工作簿的第一张工作表前面添加两张新的工作表 525、 本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时 526、 本示例设置 my_Procedure 在下午 5 点开始运行 627、 本示例撤消前一个示例对 OnTime 的设置 628、 每当工作表重新计算时,本示例就调整 A 列到 F
4、列的宽度 629、 本示例使活动工作簿中的计算仅使用显示的数字精度 630、 本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板 631、 Calculate 方法 632、 本示例更新当前活动工作簿中的所有链接 733、 本示例设置第一张工作表的滚动区域 71、 设置密码窗口If Application.InputBox(请输入密码:) = 1234 Then A1 = 1 密码正确时执行 Else: MsgBox 密码错误,即将退出! 此行与第2行共同设置密码 End If 2、 本示例为设置提示窗口X = MsgBox(是否真的要结帐?, vbYesNo) If X
5、 = vbYes Then Close 3、 本示例为设置工作表保护密码ActiveSheet.Protect Password:=641112 保护工作表并设置密码 ActiveSheet.Unprotect Password:=641112 撤消工作表保护并取消密码 4、 本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容For Each w In Workbooks If w.Name ThisWorkbook.Name Then w.Close SaveChanges:=True End If Next w 5、 每次打开工作簿时,本示例都最大化 Microsof
6、t Excel 窗口 Application.WindowState = xlMaximized 6、 本示例显示活动工作表的名称MsgBox The name of the active sheet is & ActiveSheet.Name 7、 本示例保存当前活动工作簿的副本ActiveWorkbook.SaveCopyAs C:TEMPXXXX.XLS 8、 下述过程激活工作簿中的第四张工作表Sheets(4).Activate 9、 下述过程激活工作簿中的第1张工作表Worksheets(1).Activate 10、 本示例通过将 Saved 属性设为 True 来关闭包含本段代码
7、的工作簿,并放弃对该工作簿的任何更改ThisWorkbook.Saved = True ThisWorkbook.Close 11、 本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算 Worksheets(1).EnableCalculation = False 12、 下述过程打开 C 盘上名为 MyFolder 的文件夹中的 MyBook.xls 工作簿 Workbooks.Open (C:MyFolderMyBook.xls) 13、 本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值 MsgBox Worksheet
8、s(Sheet1).Range(A1).Value 14、 本示例显示活动工作簿中每个工作表的名称 For Each ws In Worksheets MsgBox ws.Name Next ws 15、 本示例向活动工作簿添加新工作表 , 并设置该工作表的名称 Set NewSheet = Worksheets.Add NewSheet.Name = current Budget 16、 本示例将新建的工作表移到工作簿的末尾 Private Sub Workbook_NewSheet(ByVal Sh As Object) Sh.Move After:=Sheets(Sheets.Count
9、) End Sub 17、 本示例将新建工作表移到工作簿的末尾 Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, _ ByVal Sh As Object) Sh.Move After:=Wb.Sheets(Wb.Sheets.Count) End Sub 18、 本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称Set NewSheet = Sheets.Add(Type:=xlWorksheet) For i = 1 To Sheets.Count NewSheet.Cells(i, 1).Value = Sh
10、eets(i).Name Next i 19、 本示例将第十行移到窗口的最上面?Worksheets(Sheet1).Activate ActiveWindow.ScrollRow = 10 20、 当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序Private Sub Workbook_SheetCalculate(ByVal Sh As Object) With Worksheets(1) .Range(a1:a100).Sort Key1:=.Range(a1) End With End Sub 21、 本示例显示工作表 Sheet1 的打印预览Work
11、sheets(Sheet1).PrintPreview 22、 本示例保存当前活动工作簿?ActiveWorkbook.Save 23、 本示例保存所有打开的工作簿,然后关闭 Microsoft Excel For Each w In Application.Workbooks w.Save Next w Application.Quit 24、 下例在活动工作簿的第一张工作表前面添加两张新的工作表Worksheets.Add Count:=2, Before:=Sheets(1) 25、 本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时 Application.On
12、Time Now + TimeValue(00:00:15), my_Procedure 26、 本示例设置 my_Procedure 在下午 5 点开始运行 Application.OnTime TimeValue(17:00:00), my_Procedure 27、 本示例撤消前一个示例对 OnTime 的设置Application.OnTime EarliestTime:=TimeValue(17:00:00), _ Procedure:=my_Procedure, Schedule:=False 28、 每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度 Private Su
13、b Worksheet_Calculate() Columns(A:F).AutoFit End Sub 29、 本示例使活动工作簿中的计算仅使用显示的数字精度 ActiveWorkbook.PrecisionAsDisplayed = True 30、 本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板 Worksheets(Sheet1).Range(A1:G37).Cut 31、 Calculate 方法 计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示: 所有打开的工作簿 Application.Calculate (或只是
14、 Calculate) 计算指定工作表 Worksheets(Sheet1).Calculate 指定区域 Worksheets(1).Rows(2).Calculate 本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算 Worksheets(1).EnableCalculation = False 本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式 Worksheets(Sheet1).UsedRange.Columns(A:C).Calculate 32、 本示例更新当前活动工作簿中的所有链接ActiveWorkboo
15、k.UpdateLink Name:=ActiveWorkbook.LinkSources 33、 本示例设置第一张工作表的滚动区域Worksheets(1).ScrollArea = a1:f10 34、 本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿Set NewBook = Workbooks.Add Do fName = Application.GetSaveAsFilename Loop Until fName False NewBook.SaveAs Filename:=fName 35、 本示例打开 Analysis.xls 工作簿,然后运行 Auto_Open 宏
16、Workbooks.Open ANALYSIS.XLS ActiveWorkbook.RunAutoMacros xlAutoOpen 36、 本示例对活动工作簿运行 Auto_Close 宏,然后关闭该工作簿With ActiveWorkbook .RunAutoMacros xlAutoClose .Close End With 37、 在本示例中,Microsoft Excel 向用户显示活动工作簿的路径和文件名称Sub UseCanonical() Display the full path to user. MsgBox ActiveWorkbook.FullNameURLEncod
17、ed End Sub 38、 本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)MsgBox ActiveWorkbook.FullName 39、 本示例关闭 Book1.xls,并放弃所有对此工作簿的更改Workbooks(BOOK1.XLS).Close SaveChanges:=False 40、 本示例关闭所有打开的工作簿如果某个打开的工作簿有改变,Microsoft Excel 将显示询问是否保存更改的对话框和相应提示Workbooks.Close 41、 本示例在打印之前对当前活动工作簿的所有工作表重新计算Private Sub Workbook_BeforePrint(
18、Cancel As Boolean) For Each wk In Worksheets wk.Calculate Next End Sub 42、 本示例对查询表一中的第一列数据进行汇总,并在数据区域下方显示第一列数据的总和Set c1 = Sheets(sheet1).QueryTables(1).ResultRange.Columns(1) c1.Name = Column1 c1.End(xlDown).Offset(2, 0).Formula = =sum(Column1) 43、 本示例取消活动工作簿中的所有更改ActiveWorkbook.RejectAllChanges 44、
19、 本示例在商业问题中使用规划求解函数,以使总利润达到最大值SolverSave 函数将当前问题保存到活动工作表上的某一区域 Worksheets(Sheet1).Activate SolverReset SolverOptions Precision:=0.001 SolverOK SetCell:=Range(TotalProfit), _ MaxMinVal:=1, _ ByChange:=Range(C4:E6) SolverAdd CellRef:=Range(F4:F6), _ Relation:=1, _ FormulaText:=100 SolverAdd CellRef:=Ra
20、nge(C4:E6), _ Relation:=3, _ FormulaText:=0 SolverAdd CellRef:=Range(C4:E6), _ Relation:=4 SolverSolve UserFinish:=False SolverSave SaveArea:=Range(A33) 45、 本示例隐藏 Chart1、Chart3 和 Chart5 Charts(Array(Chart1, Chart3, Chart5).Visible = False 46、 当激活工作表时,本示例对 A1:A10 区域进行排序 Private Sub Worksheet_Activate
21、() Range(a1:a10).Sort Key1:=Range(a1), Order:=xlAscending End Sub 47、 本示例更改 Microsoft Excel 链接 ActiveWorkbook.ChangeLink c:excelbook1.xls, _ c:excelbook2.xls, xlExcelLinks 48、 本示例启用受保护的工作表上的自动筛选箭头? ActiveSheet.EnableAutoFilter = True ActiveSheet.Protect contents:=True, userInterfaceOnly:=True 49、 本示
22、例将活动工作簿设为只读? ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly 50、 本示例使共享工作簿每三分钟自动更新一次? ActiveWorkbook.AutoUpdateFrequency = 3 51、 下述 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容 Sub ClearSheet() Worksheets(Sheet1).Cells.ClearContents End Sub 52、 本示例对所有工作簿都关闭滚动条? Application.DisplayScrollBars = False 53、 如果具有密码保
23、护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项 Sub SetPasswordOptions() With ActiveWorkbook If .PasswordEncryptionProvider Microsoft RSA SChannel Cryptographic Provider Then .SetPasswordEncryptionOptions _ PasswordEncryptionProvider:=Microsoft RSA SChannel Cryptographic Provider, _ PasswordEncryptionAlgorithm:=R
24、C4, _ PasswordEncryptionKeyLength:=56, _ PasswordEncryptionFileProperties:=True End If End With End Sub 54、 在本示例中,如果活动工作簿不能进行写保护,那么 Microsoft Excel 设置字符串密码以作为活动工作簿的写密码 Sub UseWritePassword() Dim strPassword As String strPassword = secret Set password to a string if allowed. If ActiveWorkbook.WriteRe
25、served = False Then ActiveWorkbook.WritePassword = strPassword End If End Sub 55、 在本示例中,Microsoft Excel 打开名为 Password.xls 的工作簿,设置它的密码,然后关闭该工作簿本示例假定名为 Password.xls 的文件位于 C: 驱动器上 Sub UsePassword() Dim wkbOne As Workbook Set wkbOne = Application.Workbooks.Open(C:Password.xls) wkbOne.Password = secret w
26、kbOne.Close 注意 Password 属性可读并返回 “*” End Sub 56、 本示例将 Book1.xls 的当前窗口更改为显示公式 Workbooks(BOOK1.XLS).Worksheets(Sheet1).Activate ActiveWindow.DisplayFormulas = True 57、 本示例接受活动工作簿中的所有更改? ActiveWorkbook.AcceptAllChanges 58、 本示例显示活动工作簿的路径和名称 Sub UseCanonical() MsgBox 消息框 b7 = ActiveWorkbook.FullName 当前工作簿
27、 b8 = ActiveWorkbook.FullNameURLEncoded 活动工作簿 End Sub 59、 本示例显示 Microsoft Excel 启动文件夹的完整路径 MsgBox Application.StartupPath 60、 本示例显示活动工作簿中每个工作表的名称 For Each ws In Worksheets MsgBox ws.Name Next ws 61、 本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容 For Each w In Workbooks If w.Name ThisWorkbook.Name Then w.Close
28、 savechanges:=True End If Next w 62、 Activate 事件 激活一个工作簿、工作表、图表或嵌入图表时产生此事件 当激活工作表时,本示例对 A1:A10 区域进行排序 Private Sub Worksheet_Activate() Range(a1:a10).Sort Key1:=Range(a1), Order:=xlAscending End Sub 63、 Calculate 事件 对于 Worksheet 对象,在对工作表进行重新计算之后产生此事件 每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度 Private Sub Workshee
29、t_Calculate() Columns(A:F).AutoFit End Sub 64、 BeforeDoubleClick 事件 应用于 Worksheet 对象的 Activate 方法 当双击某工作表时产生此事件,此事件先于默认的双击操作 Private Sub expression_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) expression 引用在类模块中带有事件声明的 Worksheet 类型对象的变量 Target 必需双击发生时最靠近鼠标指针的单元格 Cancel 可选当事件发生时为 False
30、如果事件过程将该参数设为 True,则该过程执行完之后将不进行默认的双击操作 65、 BeforeRightClick 事件 应用于 Worksheet 对象的 Activate 方法 当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作 Private Sub expression_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) expression 引用在类模块中带有事件声明的 Worksheet 类型对象的变量 Target 必需右键单击发生时最靠近鼠标指针的单元格 Cancel 可选当事件发生时为 False如果该事件过程将本参数设为 True,则该过程执行结束之后不进行默认的右键单击操作 66、 Change 事件 当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件 Private Sub Worksheet_Change(ByVal Target As Range) Target 更改的区域可以是多个单元格 说明 重新计算引起的单元格更改不触发本事件可使用 Calculate 事件俘获工作表重新计算操作 67、 本
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1