EXCELVBA工作表操作全能方法小结.docx

上传人:b****5 文档编号:4164280 上传时间:2022-11-28 格式:DOCX 页数:11 大小:17.63KB
下载 相关 举报
EXCELVBA工作表操作全能方法小结.docx_第1页
第1页 / 共11页
EXCELVBA工作表操作全能方法小结.docx_第2页
第2页 / 共11页
EXCELVBA工作表操作全能方法小结.docx_第3页
第3页 / 共11页
EXCELVBA工作表操作全能方法小结.docx_第4页
第4页 / 共11页
EXCELVBA工作表操作全能方法小结.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

EXCELVBA工作表操作全能方法小结.docx

《EXCELVBA工作表操作全能方法小结.docx》由会员分享,可在线阅读,更多相关《EXCELVBA工作表操作全能方法小结.docx(11页珍藏版)》请在冰豆网上搜索。

EXCELVBA工作表操作全能方法小结.docx

EXCELVBA工作表操作全能方法小结

EXCELVBA工作表操作全能方法小结

[示例04-01]增加工作表(Add方法)

SubAddWorksheet()

MsgBox"在当前工作簿中添加一个工作表"

Worksheets.Add

MsgBox"在当前工作簿中的工作表sheet2之前添加一个工作表"

Worksheets.Addbefore:

=Worksheets("sheet2")

MsgBox"在当前工作簿中的工作表sheet2之后添加一个工作表"

Worksheets.Addafter:

=Worksheets("sheet2")

MsgBox"在当前工作簿中添加3个工作表"

Worksheets.AddCount:

=3

EndSub

示例说明:

Add方法带有4个可选的参数,其中参数Before和参数After指定所增加的工作表的位置,但两个参数只能选一;参数Count用来指定增加的工作表数目。

--------------------------------------------------------------------------------

[示例04-02]复制工作表(Copy方法)

SubCopyWorksheet()

MsgBox"在当前工作簿中复制工作表sheet1并将所复制的工作表放在工作表sheet2之前"

Worksheets("sheet1").CopyBefore:

=Worksheets("sheet2")

MsgBox"在当前工作簿中复制工作表sheet2并将所复制的工作表放在工作表sheet3之后"

Worksheets("sheet2").CopyAfter:

=Worksheets("sheet3")

EndSub

示例说明:

Copy方法带有2个可选的参数,即参数Before和参数After,在使用时两个参数只参选一。

--------------------------------------------------------------------------------

[示例04-03]移动工作表(Move方法)

SubMoveWorksheet()

MsgBox"在当前工作簿中将工作表sheet3移至工作表sheet2之前"

Worksheets("sheet3").MoveBefore:

=Worksheets("sheet2")

MsgBox"在当前工作簿中将工作表sheet1移至最后"

Worksheets("sheet1").MoveAfter:

=Worksheets(Worksheets.Count)

EndSub

示例说明:

Move方法与Copy方法的参数相同,作用也一样。

--------------------------------------------------------------------------------

[示例04-04]隐藏和显示工作表(Visible属性)

[示例04-04-01]

SubtestHide()

MsgBox"第一次隐藏工作表sheet1"

Worksheets("sheet1").Visible=False

MsgBox"显示工作表sheet1"

Worksheets("sheet1").Visible=True

MsgBox"第二次隐藏工作表sheet1"

Worksheets("sheet1").Visible=xlSheetHidden

MsgBox"显示工作表sheet1"

Worksheets("sheet1").Visible=True

MsgBox"第三次隐藏工作表sheet1"

Worksheets("sheet1").Visible=xlSheetHidden

MsgBox"显示工作表sheet1"

Worksheets("sheet1").Visible=xlSheetVisible

MsgBox"第四隐藏工作表sheet1"

Worksheets("sheet1").Visible=xlSheetVeryHidden

MsgBox"显示工作表sheet1"

Worksheets("sheet1").Visible=True

MsgBox"第五隐藏工作表sheet1"

Worksheets("sheet1").Visible=xlSheetVeryHidden

MsgBox"显示工作表sheet1"

Worksheets("sheet1").Visible=xlSheetVisible

EndSub

示例说明:

本示例演示了隐藏和显示工作表的各种情形。

其中,使用xlSheetVeryHidden常量来隐藏工作表,将不能通过选择工作表菜单栏中的“格式”——“工作表”——“取消隐藏”命令来取消隐藏。

--------------------------------------------------------------------------------

[示例04-04-02]

SubShowAllSheets()

MsgBox"使当前工作簿中的所有工作表都显示(即将隐藏的工作表也显示)"

DimwsAsWorksheet

ForEachwsInSheets

ws.Visible=True

Nextws

EndSub

--------------------------------------------------------------------------------

[示例04-05]获取工作表数(Count属性)

[示例04-05-01]

SubWorksheetNum()

DimiAsLong

i=Worksheets.Count

MsgBox"当前工作簿的工作表数为:

"&Chr(10)&i

EndSub

--------------------------------------------------------------------------------

[示例04-05-02]

SubWorksheetNum()

DimiAsLong

i=Sheets.Count

MsgBox"当前工作簿的工作表数为:

"&Chr(10)&i

EndSub

示例说明:

在一个包含图表工作表的工作簿中运行上述两段代码,将会得出不同的结果,原因是对于Sheets集合来讲,工作表包含图表工作表。

应注意Worksheets集合与Sheets集合的区别,下同。

--------------------------------------------------------------------------------

[示例04-06]获取或设置工作表名称(Name属性)

[示例04-06-01]

SubNameWorksheet()

DimsNameAsString,sChangeNameAsString

sName=Worksheets

(2).Name

MsgBox"当前工作簿中第2个工作表的名字为:

"&sName

sChangeName="我的工作表"

MsgBox"将当前工作簿中的第3个工作表名改为:

"&sChangeName

Worksheets(3).Name=sChangeName

EndSub

示例说明:

使用Name属性可以获取指定工作表的名称,也可以设置工作表的名称。

--------------------------------------------------------------------------------

[示例04-06-02]重命名工作表

SubReNameSheet()

DimxStrAsString

Retry:

Err.Clear

xStr=InputBox("请输入工作表的新名称:

"_

"重命名工作表",ActiveSheet.Name)

IfxStr=""ThenExitSub

OnErrorResumeNext

ActiveSheet.Name=xStr

IfErr.Number<>0Then

MsgBoxErr.Number&""&Err.Description

Err.Clear

GoToRetry

EndIf

OnErrorGoTo0

'.........

EndSub

--------------------------------------------------------------------------------

[NextPage][示例04-07]激活/选择工作表(Activate方法和Select方法)

[示例04-07-01]

SubSelectWorksheet()

MsgBox"激活当前工作簿中的工作表sheet2"

Worksheets("sheet2").Activate

MsgBox"激活当前工作簿中的工作表sheet3"

Worksheets("sheet3").Select

MsgBox"同时选择工作簿中的工作表sheet2和sheet3"

Worksheets(Array("sheet2","sheet3")).Select

EndSub

示例说明:

Activate方法只能激活一个工作表,而Select方法可以同时选择多个工作表。

--------------------------------------------------------------------------------

[示例04-07-02]

SubSelectManySheet()

MsgBox"选取第一个和第三个工作表."

Worksheets

(1).Select

Worksheets(3).SelectFalse

EndSub

--------------------------------------------------------------------------------

[示例04-08]获取当前工作表的索引号(Index属性)

SubGetSheetIndex()

DimiAsLong

i=ActiveSheet.Index

MsgBox"您正使用的工作表索引号为"&i

EndSub

--------------------------------------------------------------------------------

[示例04-09]选取前一个工作表(Previous属性)

SubPreviousSheet()

IfActiveSheet.Index<>1Then

MsgBox"选取当前工作簿中当前工作表的前一个工作表"

Else

MsgBox"已到第一个工作表"

EndIf

EndSub

示例说明:

如果当前工作表是第一个工作表,则使用Previous属性会出错。

--------------------------------------------------------------------------------

[示例04-10]选取下一个工作表(Next属性)

SubNextSheet()

IfActiveSheet.Index<>Worksheets.CountThen

MsgBox"选取当前工作簿中当前工作表的下一个工作表"

Else

MsgBox“已到最后一个工作表”

EndIf

EndSub

示例说明:

如果当前工作表是最后一个工作表,则使用Next属性会出错。

--------------------------------------------------------------------------------

[示例04-11]工作表行和列的操作

[示例04-11-01]隐藏行

SubHideRow()

DimiRowAsLong

MsgBox"隐藏当前单元格所在的行"

iRow=ActiveCell.Row

ActiveSheet.Rows(iRow).Hidden=True

MsgBox"取消隐藏"

ActiveSheet.Rows(iRow).Hidden=False

EndSub

--------------------------------------------------------------------------------

[示例04-11-02]隐藏列

SubHideColumn()

DimiColumnAsLong

MsgBox"隐藏当前单元格所在列"

iColumn=ActiveCell.Column

ActiveSheet.Columns(iColumn).Hidden=True

MsgBox"取消隐藏"

ActiveSheet.Columns(iColumn).Hidden=False

EndSub

--------------------------------------------------------------------------------

[示例04-11-03]插入行

SubInsertRow()

DimrRowAsLong

MsgBox"在当前单元格上方插入一行"

rRow=Selection.Row

ActiveSheet.Rows(rRow).Insert

EndSub

--------------------------------------------------------------------------------

[示例04-11-04]插入列

SubInsertColumn()

DimcColumnAsLong

MsgBox"在当前单元格所在行的左边插入一行"

cColumn=Selection.Column

ActiveSheet.Columns(cColumn).Insert

EndSub

--------------------------------------------------------------------------------

[示例04-11-05]插入多行

SubInsertManyRow()

MsgBox"在当前单元格所在行上方插入三行"

DimrRowAsLong,iAsLong

Fori=1To3

rRow=Selection.Row

ActiveSheet.Rows(rRow).Insert

Nexti

EndSub

--------------------------------------------------------------------------------

[示例04-11-06]设置行高

SubSetRowHeight()

MsgBox"将当前单元格所在的行高设置为25"

DimrRowAsLong,iRowAsLong

rRow=ActiveCell.Row

iRow=ActiveSheet.Rows(rRow).RowHeight

ActiveSheet.Rows(rRow).RowHeight=25

MsgBox"恢复到原来的行高"

ActiveSheet.Rows(rRow).RowHeight=iRow

EndSub

--------------------------------------------------------------------------------

[示例04-11-07]设置列宽

SubSetColumnWidth()

MsgBox"将当前单元格所在列的列宽设置为20"

DimcColumnAsLong,iColumnAsLong

cColumn=ActiveCell.Column

iColumn=ActiveSheet.Columns(cColumn).ColumnWidth

ActiveSheet.Columns(cColumn).ColumnWidth=20

MsgBox"恢复至原来的列宽"

ActiveSheet.Columns(cColumn).ColumnWidth=iColumn

EndSub

--------------------------------------------------------------------------------

[示例04-11-08]恢复行高列宽至标准值

SubReSetRowHeightAndColumnWidth()

MsgBox"将当前单元格所在的行高和列宽恢复为标准值"

Selection.UseStandardHeight=True

Selection.UseStandardWidth=True

EndSub

--------------------------------------------------------------------------------

[示例04-12]工作表标签

[示例04-12-01]设置工作表标签的颜色

SubSetSheetTabColor()

MsgBox"设置当前工作表标签的颜色"

=7

EndSub

--------------------------------------------------------------------------------

[示例04-12-01]恢复工作表标签颜色

SubSetSheetTabColorDefault()

MsgBox"将当前工作表标签颜色设置为默认值"

=-4142

EndSub

--------------------------------------------------------------------------------

[示例04-12-03]交替隐藏或显示工作表标签

SubHideOrShowSheetTab()

MsgBox"隐藏/显示工作表标签"

ActiveWindow.DisplayWorkbookTabs=NotActiveWindow.DisplayWorkbookTabs

EndSub

--------------------------------------------------------------------------------

[NextPage][示例04-13]确定打印的页数(HPageBreaks属性与VPageBreaks属性)

SubPageCount()

DimiAsLong

i=(+1)*(+1)

MsgBox"当前工作表共"&i&"页."

EndSub

--------------------------------------------------------------------------------

[示例04-14]保护/撤销保护工作表

[示例04-14-01]

SubProtectSheet()

MsgBox"保护当前工作表并设定密码"

ActiveSheet.ProtectPassword:

="fanjy"

EndSub

示例说明:

运行代码后,当前工作表中将不允许编辑,除非撤销工作表保护。

--------------------------------------------------------------------------------

[示例04-14-02]

SubUnprotectSheet()

MsgBox"撤销当前工作表保护"

ActiveSheet.Unprotect

EndSub

示例说明:

运行代码后,如果原保护的工作表设置有密码,则要求输入密码。

--------------------------------------------------------------------------------

[示例04-14-03]保护当前工作簿中的所有工作表

SubProtectAllWorkSheets()

OnErrorResumeNext

DimwsAsWorksheet

DimmyPasswordAsString

myPassword=InputBox("请输入您的密码"&vbCrLf&_

"(不输入表明无密码)"&vbCrLf&vbCrLf&_

"确保您没有忘记密码!

","输入密码")

ForEachwsInThisWorkbook.Worksheets

ws.Protect(myPassword)

Nextws

EndSub

--------------------------------------------------------------------------------

[示例04-14-04]撤销对当前工作簿中所有工作表的保护

SubUnprotectAllWorkSheets()

OnErrorResumeNext

DimwsAsWorksheet

DimmyPasswordAsString

myPassword=InputBox("请输入您的密码"&vbCrLf&_

"(不输入表示无密码)","输入密码")

ForEachwsInThisWorkbook.Worksheets

ws.Unprotect(myPassword)

Nextws

EndSub

--------------------------------------------------------------------------------

[示例04-14-05]仅能编辑未锁定的单元格

SubOnlyEditUnlockedCells()

Sheets("Sheet1").EnableSelection=xlUnlockedCells

ActiveSheet.ProtectDrawingObjects:

=True,Contents:

=True,Scenarios:

=True

EndSub

示例说明:

运行本代码后,在当前工作表中将只能对未锁定的单元格进行编辑,而其它单元格将不能编辑。

未锁定的单元格是指在选择菜单“格式——单元格”命令后所弹出的对话框中的“保护”选项卡中,未

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

当前位置:首页 > 小学教育 > 数学

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

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