EXCEL常用宏技巧.docx
- 文档编号:6246779
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:59
- 大小:45.18KB
EXCEL常用宏技巧.docx
《EXCEL常用宏技巧.docx》由会员分享,可在线阅读,更多相关《EXCEL常用宏技巧.docx(59页珍藏版)》请在冰豆网上搜索。
EXCEL常用宏技巧
Excel-常用宏技巧
1、设置密码窗口1
2、本示例为设置提示窗口2
3、本示例为设置工作表保护密码2
4、本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容2
5、每次打开工作簿时,本示例都最大化MicrosoftExcel窗口2
6、本示例显示活动工作表的名称2
7、本示例保存当前活动工作簿的副本2
8、下述过程激活工作簿中的第四张工作表3
9、下述过程激活工作簿中的第1张工作表3
10、本示例通过将Saved属性设为True来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改3
11、本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一张工作表自动进行重新计算3
12、下述过程打开C盘上名为MyFolder的文件夹中的MyBook.xls工作簿3
13、本示例显示活动工作簿中工作表sheet1上单元格A1中的值3
14、本示例显示活动工作簿中每个工作表的名称3
15、本示例向活动工作簿添加新工作表,并设置该工作表的名称4
16、本示例将新建的工作表移到工作簿的末尾4
17、本示例将新建工作表移到工作簿的末尾4
18、本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称4
19、本示例将第十行移到窗口的最上面?
4
20、当计算工作簿中的任何工作表时,本示例对第一张工作表的A1:
A100区域进行排序5
21、本示例显示工作表Sheet1的打印预览5
22、本示例保存当前活动工作簿?
5
23、本示例保存所有打开的工作簿,然后关闭MicrosoftExcel5
24、下例在活动工作簿的第一张工作表前面添加两张新的工作表5
25、本示例设置15秒后运行my_Procedure过程,从现在开始计时5
26、本示例设置my_Procedure在下午5点开始运行6
27、本示例撤消前一个示例对OnTime的设置6
28、每当工作表重新计算时,本示例就调整A列到F列的宽度6
29、本示例使活动工作簿中的计算仅使用显示的数字精度6
30、本示例将工作表Sheet1上的A1:
G37区域剪下,并放入剪贴板6
31、Calculate方法6
32、本示例更新当前活动工作簿中的所有链接7
33、本示例设置第一张工作表的滚动区域7
1、设置密码窗口
IfApplication.InputBox("请输入密码:
")=1234Then
[A1]=1'密码正确时执行
Else:
MsgBox"密码错误,即将退出!
"'此行与第2行共同设置密码
EndIf
2、本示例为设置提示窗口
X=MsgBox("是否真的要结帐?
",vbYesNo)
IfX=vbYesThen
Close
3、本示例为设置工作表保护密码
ActiveSheet.ProtectPassword:
=641112'保护工作表并设置密码
ActiveSheet.UnprotectPassword:
=641112'撤消工作表保护并取消密码
4、本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容
ForEachwInWorkbooks
Ifw.Name<>ThisWorkbook.NameThen
w.CloseSaveChanges:
=True
EndIf
Nextw
5、每次打开工作簿时,本示例都最大化MicrosoftExcel窗口
Application.WindowState=xlMaximized
6、本示例显示活动工作表的名称
MsgBox"Thenameoftheactivesheetis"&ActiveSheet.Name
7、本示例保存当前活动工作簿的副本
ActiveWorkbook.SaveCopyAs"C:
\TEMP\XXXX.XLS"
8、下述过程激活工作簿中的第四张工作表
Sheets(4).Activate
9、下述过程激活工作簿中的第1张工作表
Worksheets
(1).Activate
10、本示例通过将Saved属性设为True来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改
ThisWorkbook.Saved=True
ThisWorkbook.Close
11、本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一张工作表自动进行重新计算
Worksheets
(1).EnableCalculation=False
12、下述过程打开C盘上名为MyFolder的文件夹中的MyBook.xls工作簿
Workbooks.Open("C:
\MyFolder\MyBook.xls")
13、本示例显示活动工作簿中工作表sheet1上单元格A1中的值
MsgBoxWorksheets("Sheet1").Range("A1").Value
14、本示例显示活动工作簿中每个工作表的名称
ForEachwsInWorksheets
MsgBoxws.Name
Nextws
15、本示例向活动工作簿添加新工作表,并设置该工作表的名称
SetNewSheet=Worksheets.Add
NewSheet.Name="currentBudget"
16、本示例将新建的工作表移到工作簿的末尾
PrivateSubWorkbook_NewSheet(ByValShAsObject)
Sh.MoveAfter:
=Sheets(Sheets.Count)
EndSub
17、本示例将新建工作表移到工作簿的末尾
PrivateSubApp_WorkbookNewSheet(ByValWbAsWorkbook,_
ByValShAsObject)
Sh.MoveAfter:
=Wb.Sheets(Wb.Sheets.Count)
EndSub
18、本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称
SetNewSheet=Sheets.Add(Type:
=xlWorksheet)
Fori=1ToSheets.Count
NewSheet.Cells(i,1).Value=Sheets(i).Name
Nexti
19、本示例将第十行移到窗口的最上面?
Worksheets("Sheet1").Activate
ActiveWindow.ScrollRow=10
20、当计算工作簿中的任何工作表时,本示例对第一张工作表的A1:
A100区域进行排序
PrivateSubWorkbook_SheetCalculate(ByValShAsObject)
WithWorksheets
(1)
.Range("a1:
a100").SortKey1:
=.Range("a1")
EndWith
EndSub
21、本示例显示工作表Sheet1的打印预览
Worksheets("Sheet1").PrintPreview
22、本示例保存当前活动工作簿?
ActiveWorkbook.Save
23、本示例保存所有打开的工作簿,然后关闭MicrosoftExcel
ForEachwInApplication.Workbooks
w.Save
Nextw
Application.Quit
24、下例在活动工作簿的第一张工作表前面添加两张新的工作表
Worksheets.AddCount:
=2,Before:
=Sheets
(1)
25、本示例设置15秒后运行my_Procedure过程,从现在开始计时
Application.OnTimeNow+TimeValue("00:
00:
15"),"my_Procedure"
26、本示例设置my_Procedure在下午5点开始运行
Application.OnTimeTimeValue("17:
00:
00"),"my_Procedure"
27、本示例撤消前一个示例对OnTime的设置
Application.OnTimeEarliestTime:
=TimeValue("17:
00:
00"),_
Procedure:
="my_Procedure",Schedule:
=False
28、每当工作表重新计算时,本示例就调整A列到F列的宽度
PrivateSubWorksheet_Calculate()
Columns("A:
F").AutoFit
EndSub
29、本示例使活动工作簿中的计算仅使用显示的数字精度
ActiveWorkbook.PrecisionAsDisplayed=True
30、本示例将工作表Sheet1上的A1:
G37区域剪下,并放入剪贴板
Worksheets("Sheet1").Range("A1:
G37").Cut
31、Calculate方法
计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示:
所有打开的工作簿Application.Calculate(或只是Calculate)
计算指定工作表 Worksheets("Sheet1").Calculate
指定区域Worksheets
(1).Rows
(2).Calculate
本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一张工作表自动进行重新计算
Worksheets
(1).EnableCalculation=False
本示例计算Sheet1已用区域中A列、B列和C列的公式
Worksheets("Sheet1").UsedRange.Columns("A:
C").Calculate
32、本示例更新当前活动工作簿中的所有链接
ActiveWorkbook.UpdateLinkName:
=ActiveWorkbook.LinkSources
33、本示例设置第一张工作表的滚动区域
Worksheets
(1).ScrollArea="a1:
f10"
34、本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿
SetNewBook=Workbooks.Add
Do
fName=Application.GetSaveAsFilename
LoopUntilfName<>False
NewBook.SaveAsFilename:
=fName
35、本示例打开Analysis.xls工作簿,然后运行Auto_Open宏
Workbooks.Open"ANALYSIS.XLS"
ActiveWorkbook.RunAutoMacrosxlAutoOpen
36、本示例对活动工作簿运行Auto_Close宏,然后关闭该工作簿
WithActiveWorkbook
.RunAutoMacrosxlAutoClose
.Close
EndWith
37、在本示例中,MicrosoftExcel向用户显示活动工作簿的路径和文件名称
SubUseCanonical()
’Displaythefullpathtouser.
MsgBoxActiveWorkbook.FullNameURLEncoded
EndSub
38、本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)
MsgBoxActiveWorkbook.FullName
39、本示例关闭Book1.xls,并放弃所有对此工作簿的更改
Workbooks("BOOK1.XLS").CloseSaveChanges:
=False
40、本示例关闭所有打开的工作簿如果某个打开的工作簿有改变,MicrosoftExcel将显示询问是否保存更改的对话框和相应提示
Workbooks.Close
41、本示例在打印之前对当前活动工作簿的所有工作表重新计算
PrivateSubWorkbook_BeforePrint(CancelAsBoolean)
ForEachwkInWorksheets
wk.Calculate
Next
EndSub
42、本示例对查询表一中的第一列数据进行汇总,并在数据区域下方显示第一列数据的总和
Setc1=Sheets("sheet1").QueryTables
(1).ResultRange.Columns
(1)
c1.Name="Column1"
c1.End(xlDown).Offset(2,0).Formula="=sum(Column1)"
43、本示例取消活动工作簿中的所有更改
ActiveWorkbook.RejectAllChanges
44、本示例在商业问题中使用规划求解函数,以使总利润达到最大值SolverSave函数将当前问题保存到活动工作表上的某一区域
Worksheets("Sheet1").Activate
SolverReset
SolverOptionsPrecision:
=0.001
SolverOKSetCell:
=Range("TotalProfit"),_
MaxMinVal:
=1,_
ByChange:
=Range("C4:
E6")
SolverAddCellRef:
=Range("F4:
F6"),_
Relation:
=1,_
FormulaText:
=100
SolverAddCellRef:
=Range("C4:
E6"),_
Relation:
=3,_
FormulaText:
=0
SolverAddCellRef:
=Range("C4:
E6"),_
Relation:
=4
SolverSolveUserFinish:
=False
SolverSaveSaveArea:
=Range("A33")
45、本示例隐藏Chart1、Chart3和Chart5
Charts(Array("Chart1","Chart3","Chart5")).Visible=False
46、当激活工作表时,本示例对A1:
A10区域进行排序
'PrivateSubWorksheet_Activate()
Range("a1:
a10").SortKey1:
=Range("a1"),Order:
=xlAscending
EndSub
47、本示例更改MicrosoftExcel链接
ActiveWorkbook.ChangeLink"c:
\excel\book1.xls",_
"c:
\excel\book2.xls",xlExcelLinks
48、本示例启用受保护的工作表上的自动筛选箭头?
ActiveSheet.EnableAutoFilter=True
ActiveSheet.Protectcontents:
=True,userInterfaceOnly:
=True
49、本示例将活动工作簿设为只读?
ActiveWorkbook.ChangeFileAccessMode:
=xlReadOnly
50、本示例使共享工作簿每三分钟自动更新一次?
ActiveWorkbook.AutoUpdateFrequency=3
51、下述Sub过程清除活动工作簿中Sheet1上的所有单元格的内容
SubClearSheet()
Worksheets("Sheet1").Cells.ClearContents
EndSub
52、本示例对所有工作簿都关闭滚动条?
Application.DisplayScrollBars=False
53、如果具有密码保护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项
SubSetPasswordOptions()
WithActiveWorkbook
If.PasswordEncryptionProvider<>"MicrosoftRSASChannelCryptographicProvider"Then
.SetPasswordEncryptionOptions_
PasswordEncryptionProvider:
="MicrosoftRSASChannelCryptographicProvider",_
PasswordEncryptionAlgorithm:
="RC4",_
PasswordEncryptionKeyLength:
=56,_
PasswordEncryptionFileProperties:
=True
EndIf
EndWith
EndSub
54、在本示例中,如果活动工作簿不能进行写保护,那么MicrosoftExcel设置字符串密码以作为活动工作簿的写密码
SubUseWritePassword()
DimstrPasswordAsString
strPassword="secret"
'Setpasswordtoastringifallowed.
IfActiveWorkbook.WriteReserved=FalseThen
ActiveWorkbook.WritePassword=strPassword
EndIf
EndSub
55、在本示例中,MicrosoftExcel打开名为Password.xls的工作簿,设置它的密码,然后关闭该工作簿本示例假定名为Password.xls的文件位于C:
\驱动器上
SubUsePassword()
DimwkbOneAsWorkbook
SetwkbOne=Application.Workbooks.Open("C:
\Password.xls")
wkbOne.Password="secret"
wkbOne.Close
'注意Password属性可读并返回“********”
EndSub
56、本示例将Book1.xls的当前窗口更改为显示公式
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.DisplayFormulas=True
57、'本示例接受活动工作簿中的所有更改?
ActiveWorkbook.AcceptAllChanges
58、本示例显示活动工作簿的路径和名称
SubUseCanonical()
MsgBox'消息框
[b7]=ActiveWorkbook.FullName'当前工作簿
[b8]=ActiveWorkbook.FullNameURLEncoded'活动工作簿
EndSub
59、本示例显示MicrosoftExcel启动文件夹的完整路径
MsgBoxApplication.StartupPath
60、本示例显示活动工作簿中每个工作表的名称
ForEachwsInWorksheets
MsgBoxws.Name
Nextws
61、本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容
ForEachwInWorkbooks
Ifw.Name<>ThisWorkbook.NameThen
w.Closesavechanges:
=True
EndIf
Nextw
62、Activate事件
激活一个工作簿、工作表、图表或嵌入图表时产生此事件
当激活工作表时,本示例对A1:
A10区域进行排序
PrivateSubWorksheet_Activate()
Range("a1:
a10").SortKey1:
=Range("a1"),Order:
=xlAscending
EndSub
63、Calculate事件
对于Worksheet对象,在对工作表进行重新计算之后产生此事件
每当工作表重新计算时,本示例就调整A列到F列的宽度
PrivateSubWorksheet_Calculate()
Columns("A:
F").AutoFit
EndSub
64、BeforeDoubleClick事件
应用于Worksheet对象的Activate方法
当双击某工作表时产生此事件,此事件先于默认的双击操作
PrivateSubexpression_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)
expression引用在类模块中带有事件声明的Worksheet类型对象的变量
Target必需双击发生时最靠近鼠标指针的单元格
Cancel可选当事件发生时为False如果事件过程将该参数设为True,则该过程执行完之后将不进行默认的双击操作
65、BeforeRightClick事件
应用于Worksheet对象的Activate方法
当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作
PrivateSubexpression_BeforeRightClick(ByValTargetAsRange,CancelAsBoolean)
expression引用在类模块中带有事件声明的Worksheet类型对象的变量
Target必需右键单击发生时最靠近鼠标指针的单元格
Cancel可选当事件发生时为False如果该事件过程将本参数设为True,则该过程执行结束之后不进行默认的右键单击操作
66、Change事件
当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件
PrivateSubWorksheet_Change(ByValTargetAsRange)
Target更改的区域可以是多个单元格
说明
重新计算引起的单元格更改不触发本事件可使用Calculate事件俘获工作表重新计算操作
67、本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EXCEL 常用 技巧