Excel VBA学习应用的经验.docx

上传人:b****5 文档编号:7450822 上传时间:2023-05-11 格式:DOCX 页数:26 大小:29.60KB
下载 相关 举报
Excel VBA学习应用的经验.docx_第1页
第1页 / 共26页
Excel VBA学习应用的经验.docx_第2页
第2页 / 共26页
Excel VBA学习应用的经验.docx_第3页
第3页 / 共26页
Excel VBA学习应用的经验.docx_第4页
第4页 / 共26页
Excel VBA学习应用的经验.docx_第5页
第5页 / 共26页
Excel VBA学习应用的经验.docx_第6页
第6页 / 共26页
Excel VBA学习应用的经验.docx_第7页
第7页 / 共26页
Excel VBA学习应用的经验.docx_第8页
第8页 / 共26页
Excel VBA学习应用的经验.docx_第9页
第9页 / 共26页
Excel VBA学习应用的经验.docx_第10页
第10页 / 共26页
Excel VBA学习应用的经验.docx_第11页
第11页 / 共26页
Excel VBA学习应用的经验.docx_第12页
第12页 / 共26页
Excel VBA学习应用的经验.docx_第13页
第13页 / 共26页
Excel VBA学习应用的经验.docx_第14页
第14页 / 共26页
Excel VBA学习应用的经验.docx_第15页
第15页 / 共26页
Excel VBA学习应用的经验.docx_第16页
第16页 / 共26页
Excel VBA学习应用的经验.docx_第17页
第17页 / 共26页
Excel VBA学习应用的经验.docx_第18页
第18页 / 共26页
Excel VBA学习应用的经验.docx_第19页
第19页 / 共26页
Excel VBA学习应用的经验.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Excel VBA学习应用的经验.docx

《Excel VBA学习应用的经验.docx》由会员分享,可在线阅读,更多相关《Excel VBA学习应用的经验.docx(26页珍藏版)》请在冰点文库上搜索。

Excel VBA学习应用的经验.docx

ExcelVBA学习应用的经验

大家有哪些Excel应用的经验?

[增加一些小技巧]

讲师:

张剑悦

各种ExcelVBA的命令

宏的一些简单语法

1.宏是怎么样的

macro1()

endsub

2.在宏里面,是怎么表示单格,工作表,工作薄,文件的?

cells(1,1)就是A1单元格

range(A1:

B2)

sheets("Sheet1")表明是工作表sheet1

workbooks("aaa.xls")表明是工作薄aaa.xls

3.对单元格有哪些操作

cells(1,1)="222"

cells(1,1).select

cells(1,1).clearcontents

cells(1,1).copy

一些选择一样适用于工作表跟范围

range("A1:

B2").select

selection.copy

worksheets("sheet1").activate

怎么给一个单元格赋一个公式:

ActiveCell.FormulaR1C1="公式“如ActiveCell.FormulaR1C1="if(A1>A2,A1,A2)"

这样一般的运算都可以实现了。

VBA操作文件[转]

1,在D:

\下新建文件夹,命名为folder

方法1:

MkDir"D:

\folder"

方法2:

Setabc=CreateObject("Scripting.FileSystemObject")

abc.CreateFolder("D:

\folder")

2,新建2个文件命名为a.xls和b.xls

Workbooks.Add

ActiveWorkbook.SaveAsFilename:

="D:

\folder\a.xls"

ActiveWorkbook.SaveAsFilename:

="D:

\folder\b.xls"

3,创建新文件夹folder1并把a.xls复制到新文件夹重新命名为c.xls

MkDir"D:

\folder1"

FileCopy"D:

\folder\a.xls","D:

\folder1\c.xls"

4,复制folder中所有文件到folder1

Setqqq=CreateObject("Scripting.FileSystemObject")

qqq.CopyFolder"D:

\folder","D:

\folder1"

5,重命名a.xls为d.xls

name"d:

\folder1\a.xls"as"d:

\folder1\d.xls"

6,判断文件及文件夹是否存在

Setyyy=CreateObject("Scripting.FileSystemObject")

Ifyyy.FolderExists("D:

\folder1)=TrueThen...

Ifyyy.FileExists("D:

\folder1\d.xls)=TrueThen...

7,打开folder1中所有文件

Setrrr=CreateObject("Scripting.FileSystemObject")

Setr=rrr.GetFolder("d:

\folder1")

ForEachiInr.Files

Workbooks.OpenFilename:

=("d:

\folder1\"+i.Name+"")

Next

8,删除文件c.xls

kill"d:

\folder1\c.xls"

9,删除文件夹folder

Setaaa=CreateObject("Scripting.FileSystemObject")

aaa.DeleteFolder"d:

\folder"

本示例为设置密码窗口

(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").Cut

Calculate方法

计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元

格,如下表所示:

'要计算'依照本示例

所有打开的工作簿'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"MicrosoftRSASChannel

CryptographicProvider"Then

.SetPasswordEncryptionOptions_

PasswordEncryptionProvider:

="MicrosoftRSASChannel

CryptographicProvider",_

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()

DimwkbOneAsWorkbook

SetwkbOne=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

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

ForEachwInWorkbooks

Ifw.NameThisWorkbook.NameThen

w.Closesavechanges:

=True

EndIf

Nextw

Activate事件

激活一个工作簿、工作表、图表或嵌入图表时产生此事件。

当激活工作表时,本示例对A1:

A10区域进行排序。

PrivateSubWorksheet_Activate()

Range("a1:

a10").SortKey1:

=Range("a1"),Order:

=xlAscending

EndSub

Calculate事件

对于Worksheet对象,在对工作表进行重新计算之后产生此事件

每当工作表重新计算时,本示例就调整A列到F列的宽度。

PrivateSubWorksheet_Calculate()

Columns("A:

F").AutoFit

EndSub

BeforeDoubleClick事件

应用于Worksheet对象的Activate方法。

当双击某工作表时产生此事件,此事件先于默认的双击操作。

PrivateSubexpression_BeforeDoubleClick(ByValTargetAsRange,Cancel

AsBoolean)

expression引用在类模块中带有事件声明的Worksheet类型对象的变量。

Target必需。

双击发生时最靠近鼠标指针的单元格。

Cancel可选。

当事件发生时为False。

如果事件过程将该参数设为True,则该

过程执行完之后将不进行默认的双击操作。

BeforeRightClick事件

应用于Worksheet对象的Activate方法。

当用鼠标右键单击某工

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2