excel中各种vba写法彷徨豁然开朗博客园Word格式.docx
- 文档编号:22350705
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:11
- 大小:18.82KB
excel中各种vba写法彷徨豁然开朗博客园Word格式.docx
《excel中各种vba写法彷徨豁然开朗博客园Word格式.docx》由会员分享,可在线阅读,更多相关《excel中各种vba写法彷徨豁然开朗博客园Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
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:
撤消工作表保护并取消密码'
本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。
ForEachwInWorkbooks
Ifw.NameThisWorkbook.NameThen
w.CloseSaveChanges:
=True
EndIf
Nextw'
每次打开工作簿时,本示例都最大化MicrosoftExcel窗口。
Application.WindowState=xlMaximized'
本示例显示活动工作表的名称。
MsgBox"
Thenameoftheactivesheetis"
&
amp;
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("
\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)
=Wb.Sheets(Wb.Sheets.Count)
EndSub本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称。
SetNewSheet=Sheets.Add(Type:
=xlWorksheet)
Fori=1ToSheets.Count
NewSheet.Cells(i,1).Value=Sheets(i).Name
Nexti本示例将第十行移到窗口的最上面?
Worksheets("
).Activate
ActiveWindow.ScrollRow=10当计算工作簿中的任何工作表时,本示例对第一张工作表的A1:
A100区域进行排序。
PrivateSubWorkbook_SheetCalculate(ByValShAsObject)
WithWorksheets
(1)
.Range("
a1:
a100"
).SortKey1:
=.Range("
a1"
)
EndWith
EndSub
本示例显示工作表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:
15"
),"
my_Procedure"
本示例设置my_Procedure在下午5点开始运行。
Application.OnTimeTimeValue("
17:
00"
本示例撤消前一个示例对OnTime的设置。
Application.OnTimeEarliestTime:
=TimeValue("
),_
Procedure:
="
Schedule:
=False每当工作表重新计算时,本示例就调整A列到F列的宽度。
PrivateSubWorksheet_Calculate()
Columns("
A:
F"
).AutoFit
EndSub本示例使活动工作簿中的计算仅使用显示的数字精度。
ActiveWorkbook.PrecisionAsDisplayed=True本示例将工作表Sheet1上的A1:
G37区域剪下,并放入剪贴板。
A1:
G37"
).CutCalculate方法
计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示:
要计算'
依照本示例
所有打开的工作簿'
Application.Calculate(或只是Calculate)
指定工作表'
计算指定工作表Sheet1Worksheets("
).Calculate
指定区域'
Worksheets
(1).Rows
(2).Calculate本示例对自动重新计算功能进行设置,使MicrosoftExcel不对第一张工作表自动进行重新计算。
Worksheets
(1).EnableCalculation=False本示例计算Sheet1已用区域中A列、B列和C列的公式。
).UsedRange.Columns("
C"
).Calculate本示例更新当前活动工作簿中的所有链接?
ActiveWorkbook.UpdateLinkName:
=ActiveWorkbook.LinkSources本示例设置第一张工作表的滚动区域?
Worksheets
(1).ScrollArea="
f10"
本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿。
SetNewBook=Workbooks.Add
Do
fName=Application.GetSaveAsFilename
LoopUntilfNameFalse
NewBook.SaveAsFilename:
=fName本示例打开Analysis.xls工作簿,然后运行Auto_Open宏。
Workbooks.Open"
ANALYSIS.XLS"
ActiveWorkbook.RunAutoMacrosxlAutoOpen本示例对活动工作簿运行Auto_Close宏,然后关闭该工作簿。
WithActiveWorkbook
.RunAutoMacrosxlAutoClose
.Close
EndWith在本示例中,MicrosoftExcel向用户显示活动工作簿的路径和文件名称。
SubUseCanonical()
Displaythefullpathtouser.
MsgBoxActiveWorkbook.FullNameURLEncoded
EndSub本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)。
MsgBoxActiveWorkbook.FullName本示例关闭Book1.xls,并放弃所有对此工作簿的更改。
Workbooks("
BOOK1.XLS"
).CloseSaveChanges:
=False本示例关闭所有打开的工作簿。
如果某个打开的工作簿有改变,MicrosoftExcel将显示询问是否保存更改的对话框和相应提示。
Workbooks.Close本示例在打印之前对当前活动工作簿的所有工作表重新计算?
PrivateSubWorkbook_BeforePrint(CancelAsBoolean)
ForEachwkInWorksheets
wk.Calculate
Next
EndSub本示例对查询表一中的第一列数据进行汇总,并在数据区域下方显示第一列数据的总和。
Setc1=Sheets("
sheet1"
).QueryTables
(1).ResultRange.Columns
(1)
c1.Name="
Column1"
c1.End(xlDown).Offset(2,0).Formula="
=sum(Column1)"
本示例取消活动工作簿中的所有更改?
ActiveWorkbook.RejectAllChanges本示例在商业问题中使用规划求解函数,以使总利润达到最大值。
SolverSave函数将当前问题保存到活动工作表上的某一区域。
SolverReset
SolverOptionsPrecision:
=0.001
SolverOKSetCell:
=Range("
TotalProfit"
MaxMinVal:
=1,_
ByChange:
C4:
E6"
SolverAddCellRef:
F4:
F6"
Relation:
FormulaText:
=100
=3,_
=0
=4
SolverSolveUserFinish:
=False
SolverSaveSaveArea:
A33"
)本示例隐藏Chart1、Chart3和Chart5。
Charts(Array("
Chart1"
"
Chart3"
Chart5"
)).Visible=False当激活工作表时,本示例对A1:
A10区域进行排序。
PrivateSubWorksheet_Activate()
Range("
a10"
),order:
=xlAscending
EndSub本示例更改MicrosoftExcel链接。
ActiveWorkbook.ChangeLink"
c:
\excel\book1.xls"
_
\excel\book2.xls"
xlExcelLinks本示例启用受保护的工作表上的自动筛选箭头?
ActiveSheet.EnableAutoFilter=True
ActiveSheet.Protectcontents:
=True,userInterfaceOnly:
=True本示例将活动工作簿设为只读?
ActiveWorkbook.ChangeFileAccessMode:
=xlReadOnly本示例使共享工作簿每三分钟自动更新一次?
ActiveWorkbook.AutoUpdateFrequency=3下述Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。
SubClearSheet()
).Cells.ClearContents
EndSub本示例对所有工作簿都关闭滚动条?
Application.DisplayScrollBars=False如果具有密码保护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项。
SubSetPasswordOptions()
If.PasswordEncryptionProvider"
MicrosoftRSASChannelCryptographicProvider"
Then
.SetPasswordEncryptionOptions_
PasswordEncryptionProvider:
PasswordEncryptionAlgorithm:
RC4"
PasswordEncryptionKeyLength:
=56,_
PasswordEncryptionFileProperties:
EndSub在本示例中,如果活动工作簿不能进行写保护,那么MicrosoftExcel设置字符串密码以作为活动工作簿的写密码。
SubUseWritePassword()
DimstrPasswordAsString
strPassword="
secret"
Setpasswordtoastringifallowed.
IfActiveWorkbook.WriteReserved=FalseThen
ActiveWorkbook.WritePassword=strPassword
EndSub在本示例中,MicrosoftExcel打开名为Password.xls的工作簿,设置它的密码,然后关闭该工作簿。
本示例假定名为Password.xls的文件位于C:
\驱动器上。
SubUsePassword()DimwkbOneAsWorkbookSetwkbOne=Application.Workbooks.Open("
\Password.xls"
)wkbOne.Password="
wkbOne.Close
注意Password属性可读并返回&
********&
EndSub本示例将Book1.xls的当前窗口更改为显示公式。
).Worksheets("
ActiveWindow.DisplayFormulas=True'
本示例接受活动工作簿中的所有更改?
ActiveWorkbook.AcceptAllChanges本示例显示活动工作簿的路径和名称
MsgBox'
消息框
[b7]=ActiveWorkbook.FullName'
当前工作簿
[b8]=ActiveWorkbook.FullNameURLEncoded'
活动工作簿
EndSub本示例显示MicrosoftExcel启动文件夹的完整路径。
MsgBoxApplication.StartupPath本示例显示活动工作簿中每个工作表的名称。
Nextws本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- excel中各种vba写法 彷徨豁然开朗 博客园 excel 各种 vba 写法 彷徨 豁然开朗 博客