excel中各种vba写法彷徨豁然开朗博客园.docx

上传人:b****7 文档编号:9214606 上传时间:2023-02-03 格式:DOCX 页数:11 大小:18.82KB
下载 相关 举报
excel中各种vba写法彷徨豁然开朗博客园.docx_第1页
第1页 / 共11页
excel中各种vba写法彷徨豁然开朗博客园.docx_第2页
第2页 / 共11页
excel中各种vba写法彷徨豁然开朗博客园.docx_第3页
第3页 / 共11页
excel中各种vba写法彷徨豁然开朗博客园.docx_第4页
第4页 / 共11页
excel中各种vba写法彷徨豁然开朗博客园.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

excel中各种vba写法彷徨豁然开朗博客园.docx

《excel中各种vba写法彷徨豁然开朗博客园.docx》由会员分享,可在线阅读,更多相关《excel中各种vba写法彷徨豁然开朗博客园.docx(11页珍藏版)》请在冰豆网上搜索。

excel中各种vba写法彷徨豁然开朗博客园.docx

excel中各种vba写法彷徨豁然开朗博客园

Excel中各种VBA写法-彷徨......豁然开朗-博客园

Excel中各种VBA写法

 

先贴一段网上找的excel的各种事件

工作簿对象事件一览表

当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。

工作簿上的事件在默认情况下是可用的。

若要查看工作簿的事件过程,请用鼠标右键单击处于还原状态或最小化状态的工作簿窗口标题栏,再单击快捷菜单上的“查看代码”。

在“过程”下拉列表框内选择事件名称。

事件说明

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").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.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函数将当前问题保存到活动工作表上的某一区域。

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")本示例隐藏Chart1、Chart3和Chart5。

Charts(Array("Chart1","Chart3","Chart5")).Visible=False当激活工作表时,本示例对A1:

A10区域进行排序。

'PrivateSubWorksheet_Activate()

Range("a1:

a10").SortKey1:

=Range("a1"),order:

=xlAscending

EndSub本示例更改MicrosoftExcel链接。

ActiveWorkbook.ChangeLink"c:

\excel\book1.xls",_

"c:

\excel\book2.xls",xlExcelLinks本示例启用受保护的工作表上的自动筛选箭头?

ActiveSheet.EnableAutoFilter=True

ActiveSheet.Protectcontents:

=True,userInterfaceOnly:

=True本示例将活动工作簿设为只读?

ActiveWorkbook.ChangeFileAccessMode:

=xlReadOnly本示例使共享工作簿每三分钟自动更新一次?

ActiveWorkbook.AutoUpdateFrequency=3下述Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。

'SubClearSheet()

Worksheets("Sheet1").Cells.ClearContents

EndSub本示例对所有工作簿都关闭滚动条?

Application.DisplayScrollBars=False如果具有密码保护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项。

'SubSetPasswordOptions()

WithActiveWorkbook

If.PasswordEncryptionProvider"MicrosoftRSASChannelCryptographicProvider"Then

.SetPasswordEncryptionOptions_

PasswordEncryptionProvider:

="MicrosoftRSASChannelCryptographicProvider",_

PasswordEncryptionAlgorithm:

="RC4",_

PasswordEncryptionKeyLength:

=56,_

PasswordEncryptionFileProperties:

=True

EndIf

EndWith

EndSub在本示例中,如果活动工作簿不能进行写保护,那么MicrosoftExcel设置字符串密码以作为活动工作簿的写密码。

'SubUseWritePassword()

DimstrPasswordAsString

strPassword="secret"

'Setpasswordtoastringifallowed.

IfActiveWorkbook.WriteReserved=FalseThen

ActiveWorkbook.WritePassword=strPassword

EndIf

EndSub在本示例中,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").Activate

ActiveWindow.DisplayFormulas=True'本示例接受活动工作簿中的所有更改?

ActiveWorkbook.AcceptAllChanges本示例显示活动工作簿的路径和名称

SubUseCanonical()

MsgBox'消息框

[b7]=ActiveWorkbook.FullName'当前工作簿

[b8]=ActiveWorkbook.FullNameURLEncoded'活动工作簿

EndSub本示例显示MicrosoftExcel启动文件夹的完整路径。

MsgBoxApplication.StartupPath本示例显示活动工作簿中每个工作表的名称。

ForEachwsInWorksheets

MsgBoxws.Name

Nextws本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1