VBA常用代码.docx
- 文档编号:17941377
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:29
- 大小:28.42KB
VBA常用代码.docx
《VBA常用代码.docx》由会员分享,可在线阅读,更多相关《VBA常用代码.docx(29页珍藏版)》请在冰点文库上搜索。
VBA常用代码
VBA常用代码
用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!
使用Dim语句
Dimaasinteger'声明a为整型变量
Dima'声明a为变体变量
Dimaasstring'声明a为字符串变量
Dimaascurrency,bascurrency,cascurrency'声明a,b,c为货币变量
DimzAsVariant定义实数(带小数)
......
声明变量可以是:
Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String*length(定长字符串)、Object、Variant、用户定义类型或对象类型。
强制声明变量
OptionExplicit
说明:
该语句必在任何过程之前出现在模块中。
声明常数
用来代替文字值。
Const
'常数的默认状态是Private。
ConstMy=456
'声明Public常数。
PublicConstMyString="HELP"
'声明PrivateInteger常数。
PrivateConstMyIntAsInteger=5
'在同一行里声明多个常数。
ConstMyStr="Hello",MyDoubleAsDouble=3.4567
选择当前单元格所在区域
在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。
只要将该段代码加入到你的模块中。
SubMy_Select
Selection.CurrentRegion.Select
Endsub
返回当前单元格中数据删除前后空格后的值
submy_trim
msgboxTrim(ActiveCell.Value)
endsub
单元格位移
submy_offset
ActiveCell.Offset(0,1).Select'当前单元格向左移动一格
ActiveCell.Offset(0,-1).Select'当前单元格向右移动一格
ActiveCell.Offset(1,0).Select'当前单元格向下移动一格
ActiveCell.Offset(-1,0).Select'当前单元格向上移动一格
endsub
如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往
submy_offset之下加一段代码onerrorresumenext
注意以下代码都不再添加sub“代码名称”和endsub请自己添加!
给当前单元格赋值
ActiveCell.Value="你好!
!
!
"
给指定单元格赋值
例如:
A1单元格内容设为"HELLO"
Range("a1").value="hello"
又如:
你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"
1.
sheets("sheet2").select
range("a1").value="hello"
或
2.
Sheets("sheet1").Range("a1").Value="hello"
说明:
1.sheet2被选中,然后在将“HELLO"赋到A1单元格中。
2.sheet2不必被选中,即可“HELLO"赋到sheet2的A1单元格中。
隐藏工作表
'隐藏SHEET1这张工作表
sheets("sheet1").Visible=False
'显示SHEET1这张工作表
sheets("sheet1").Visible=True
打印预览
有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。
DimmyAsWorksheet
ForEachmyInWorksheets
my.PrintPreview
Nextmy
得到当前单元格的地址
msgboxActiveCell.Address
得到当前日期及时间
msgboxdate&chr(13)&time
保护工作簿
ActiveSheet.Protect
取消保护工作簿
ActiveSheet.Unprotect
给活动工作表改名为"liu"
ActiveSheet.Name="liu"
打开一个应用程序
AppActivate(Shell("C:
\WINDOWS\CALC.EXE"))
增加一个工作表
Worksheets.Add
删除活动工作表
activesheet.delete
打开一个工作簿文件
Workbooks.OpenFileName:
="C:
\MyDocuments\Book2.xls"
关闭活动窗口
ActiveWindow.Close
单元格格式
选定单元格左对齐
Selection.HorizontalAlignment=xlLeft
选定单元格居中
Selection.HorizontalAlignment=xlCenter
选定单元格右对齐
Selection.HorizontalAlignment=xlRight
选定单元格为百分号风格
Selection.Style="Percent"
选定单元格字体为粗体
Selection.Font.Bold=True
选定单元格字体为斜体
Selection.Font.Italic=True
选定单元格字体为宋体20号字
WithSelection.Font
.Name="宋体"
.Size=20
EndWith
With语句
With对象
.描述
EndWith
清除单元格
ActiveCell.Clear'删除所有文字、批注、格式
返回选定区域的行数
MsgBoxSelection.Rows.Count
返回选定区域的列数
MsgBoxSelection.Columns.Count
返回选定区域的地址
Selection.Address
忽略所有的错误
ONERRORRESUMENEXT
遇错跳转
onerrorgotoerr_handle
'中间的其他代码
err_handle:
'标签
'跳转后的代码
删除一个文件
kill"c:
\1.txt"
定制自己的状态栏
Application.StatusBar="现在时刻:
"&Time
恢复自己的状态栏
Application.StatusBar=false
用代码执行一个宏
Application.Runmacro:
="text"
滚动窗口到a1的位置
ActiveWindow.ScrollRow=1
ActiveWindow.ScrollColumn=1
定制系统日期
DimMyDate,MyDay
MyDate=#12/12/69#
MyDay=Day(MyDate)
返回当天的时间
DimMyDate,MyYear
MyDate=Date
MyYear=Year(MyDate)
MsgBoxMyYear
inputbox<输入框>
XX=InputBox("Enternumberofmonthstoadd")
得到一个文件名
DimkkAsString
kk=Application.GetOpenFilename("EXCEL(*.XLS),*.XLS",Title:
="提示:
请打开一个EXCEL文件:
")
msgboxkk
打开zoom对话框
Application.Dialogs(xlDialogZoom).Show
激活字体对话框
Application.Dialogs(xlDialogActiveCellFont).Show
打开另存对话框
DimkkAsString
kk=Application.GetSaveAsFilename("excel(*.xls),*.xls")
Workbooks.Openkk
1excle快捷键大全
对工具栏进行操作的快捷键
激活菜单栏,F10,Alt
选定前一个或下一个工具栏,Ctrl+Tab或Ctrl+Shift+Tab
选定工具栏中的下一个或前一个按钮或菜单,Tab或Shift+Tab(当某个工具栏被激活时)
打开选定的菜单,Enter
运行选按钮的操作,Enter
在选定的文本框中输入文本,Enter
在对话框中使用的快捷键
取消当前任务,Esc
单击相应命令,Alt+下划线字母
单击选定的按钮,Enter
在选项中前移,Tab
在选项后移,Shift+Tab
在选项卡中前移,Ctrl+Tab
在选项卡中后移,Ctrl+Shift+Tab
刷新“另存为”或“打开”对话框,F5
插入、删除和复制选定区域的快捷键
复制选定区域,Ctrl+C
粘贴选定区域,Ctrl+V
剪切选定区域,Ctrl+X
清除选定区域的内容,Delete
插入空白单元格,Ctrl+Shift+加号
删除选定区域,Ctrl+-
撤消最后一次操作,Ctrl+Z
使用“office助手”需要用到的快捷键
关闭“office助手”提供的消息,Esc
通过“office助手”获取帮助信息,F1
显示下一项提示,Alt+N
显示前一项提示,Alt+B
在向导中显示或隐藏“office助手”,空格键
对窗口进行操作的快捷键
切换到下一个程序,Alt+Tab
切换到前一个程序,Alt+Shift+Tab
显示windwos“开始”菜单,Ctrl+Esc
关闭活动工作薄窗口,Ctrl+W
恢复活动工作薄窗口,Ctrl+F5
切换到下一个工作薄窗口,Ctrl+F6
切换到前一个工作薄窗口,Ctrl+Shift+F6
执行“移动”命令(菜单栏中的工作薄图标菜单),Ctrl+F7
运行“大小”命令(菜单栏中的工作薄图标菜单),Ctrl+F8
将工作薄窗口最小化为图标,Ctrl+F9
最大化或恢复工作薄窗口,Ctrl+F10
在“打开”或“另存为”对话框中更新可见的文件,F5
使用对话框进行操作的快捷键
切换到对话框中的下一个选项卡,Ctrl+Tab或Ctrl+PageDown
切换到对话框中的前一个选项卡,Ctrl+Shift+Tab或Ctrl+PageUp
移动到下一个选项或选项组,Tab
移动到前一个选项或选项组,Shift+Tab
在活动下拉列表框的选项间移动,或在选项组选项间移动,方向键
招待活动按钮的操作,或选定或清除当前复选框,空格键
取消命令或关闭对话框,Esc
在文本框中进行操作的快捷键
移动到内容的开始,Home
移动到内容的最后,End
向左或向右移动一个字符,左右方向键
向左或向右移动一个字,Ctrl+左右方向键
选定从插入点到开始的输入内容,Shift+Home
选定从插入点到最后的输入内容,Shift+End
选定或取消左面的一个字符,Shift+左方向键
选定或取消右面的一个字符,Shift+右方向键
选定或取消左面的一个字,Ctrl+Shift+左方向键
选定或取消右面的一个字,Ctrl+Shift+右方向键
在工作表和工作薄中选定单元格、列、行或对象的快捷键
选定当前单元格周围的区域,Ctrl+Shift+*(星号)
将选定区域扩展一个单元格宽度,Shift+方向键
将选定区域扩展到与活动单元格同一行或同一列的最后一个非空白单元格,Ctrl+Shift+方向键
将选定区域扩展到行首,Shift+Home
将选定区域扩展到工作表的开始,Ctrl+Shift+Home
将选定区域扩展到工作表的最后一个包含数据的单元格,Ctrl+Shift+End
选定整列,Ctrl+空格键
选定整行,Shift+空格键
选定整个工作表,Ctrl+A
若已选定多个单元格,则只选定其中的活动单元格,Shift+Backspace
将选定区域向下扩展一屏,Shift+PageDown
将选定区域向上扩展一屏,Shift+PageUp
在选定一个对象时,选定工作表上的所有对象,Ctrl+Shift+空格键
在隐藏对象、显示对象与对象占位符之间切换,Ctrl+6
显示或隐藏“常用”工具栏,Ctrl+7
分级显示数据的快捷键
取消行或列分组,Alt+Shift+左方向键
对行或列分组,Alt+Shift+右方向键
显示或隐藏分级显示符号,Ctrl+8
隐藏选定行,Ctrl+9
取消隐藏选定行,Ctrl+Shift+(
隐藏选定列,Ctrl+0
取消隐藏选定列,Ctrl+Shift+)
编辑单元格的快捷键
完成单元格输入,Enter
取消单元格输入,Esc
重复单元格一次操作,F4或Ctrl+Y
在单元格中折行,Alt+Enter
删除插入点左边的字符或删除选定区域,Backspace
删除插入点右边的字符或删除选定区域,Delete
向上下左右移动一个字符,方向键
移到行首,Home
移到行尾,End
编辑单元格批注,Shift+F2
由行或列标志创建名称,Ctrl+Shift+F3
向下填充,Ctrl+D
向右填充,Ctrl+R
用当前输入项填充选定的单元格区域,Ctrl+Enter
完成单元格输入并在选定区域中下移,Enter
完成单元格输入并在选定区域中上移,Shift+Enter
完成单元格输入并在选定区域中右移,Tab
完成单元格输入并在选定区域中左移,Shift+Tab
在单元格或编辑栏中使用的快捷键
键入公式,=(等号)
取消单元格或编辑栏中的输入项,Esc
编辑当前单元格,F2
编辑活动单元格并清除其内容,或在编辑时删除前一个字符,Backspace
将名称粘贴到公式中,F3
定义名称,Ctrl+F3
计算所有打开工作薄中的所有工作表,F9
计算活动工作表,Shift+F9
输入“自动求和”公式,Alt+=(等号)
输入日期,Ctrl+;
输入时间,Ctrl+Shift+:
插入超级链接,Ctrl+K
完成单元格输入,Enter
将当前单元格上方单元格中的数值复制到当前单元格或编辑栏,Ctrl+Shift+(双引号)
将当前单元格上方单元格中的公式复制到当前单元格或编辑栏,Ctrl+'(单引号)
在显示单元格值与单元格公式间转换,Ctrl+`(撇号)
输入数组公式,Ctrl+Shift+Enter
键入有效函数名后,显示公式选项板,Ctrl+A
键入有效函数名后,为该函数插入变量名和括号,Ctrl+Shift+A
显示“记忆式键入”列表,Ctrl+下方向键
快捷键与数据格式设置
显示“样式”命令,Alt+'(单引号)
显示“单元格”命令,Ctrl+1
应用常规数字格式,Ctrl+Shift+~
应用带两个小数位的“贷币”格式,Ctrl+Shift+$
应用不带小数位的“百分比”格式,Ctrl+shift+%
应用带两个小数位的“科学记数”数字格式,,Ctrl+shift+^
应用年月日“日期”格式,Ctrl+shift+#
应用小时和分钟“时间”格式,并表明上午或下午,Ctrl+shift+@
应用外边框,Ctrl+shift+&
取消选定单元格区域中的所有边框,Ctrl+shift+_
应用或取消字体加粗格式,Ctrl+B
应用或取消字体倾斜格式,Ctrl+I
应用或取消字体下划线格式,Ctrl+U
应用或取消删除线格式,Ctrl+5
隐藏行,Ctrl+9
取消隐藏行,Ctrl+Shift+(
隐藏列,Ctrl+0
取消隐藏列,Ctrl+Shift+)
使用Excel2003工作表的VBA示例
适用范围:
MicrosoftOfficeExcel2003
摘要:
寻找能够为Excel工作表增加额外功能的宏。
只需稍加练习,您就可以扩展这些程序,使其适合您自己的应用程序。
本页内容
引言
导出带有逗号和引号分隔符的文本文件
计算包含公式、文本或数字的单元格数量
使用Saved属性确定工作簿是否已发生更
合并数据列
数组中的总行数和总列数
结论
引言
本文介绍几个MicrosoftVisualBasicforApplications(VBA)宏,您可以使用这些宏为MicrosoftOfficeExcel2003工作簿和工作表增加额外的功能。
这些宏将为您的应用程序提供新的功能或增强现有的功能。
阅读示例的同时,您应该寻找扩展这些宏的方法,以适合您自己的情况。
导出带有逗号和引号分隔符的文本文件
Excel没有自动将数据导出为文本文件的菜单命令,因此导出的文本文件同时带有逗号和引号分隔符。
例如,没有命令能自动创建包含以下内容的文本文件:
"Text1","Text2","Text3"
但是,您可以使用VBA宏在Excel中创建该功能。
这种文件格式是在诸如MicrosoftOfficeAccess2003和MicrosoftOfficeWord2003之类的应用程序中导入文本数据时常见的格式。
您可以在如下所示的VBA宏中使用Print语句,导出同时带有逗号和引号分隔符的文本文件。
要使该程序正常运行,必须在运行该程序之前选择包含数据的单元格。
使用以下示例之前,请执行以下步骤:
1.打开一个新工作簿。
2.在“工具”菜单中,指向“宏”,然后单击“VisualBasic编辑器”(或者简单地按下ALT+F11组合键)。
在“VisualBasic编辑器”中,单击“插入”菜单,然后单击“模块”。
3.将以下示例代码键入或粘贴到模块中:
SubQuoteCommaExport()
DimDestFileAsString
DimFileNumAsInteger
DimColumnCountAsInteger
DimRowCountAsInteger
'提示用户指定目标文件名。
DestFile=InputBox("Enterthedestinationfilename"&_
Chr(10)&"(withcompletepathandextension):
",_
"Quote-CommaExporter")
'获取下一个可用的文件句柄编号。
FileNum=FreeFile()
'关闭错误检查功能。
OnErrorResumeNext
'尝试打开目标文件以供输出。
OpenDestFileForOutputAs#FileNum
'如果出现错误,则报告错误并结束程序。
IfErr<>0Then
MsgBox"Cannotopenfilename"&DestFile
End
EndIf
'打开错误检查功能。
OnErrorGoTo0
'循环选择的每一行。
ForRowCount=1ToSelection.Rows.Count
'循环选择的每一列。
ForColumnCount=1ToSelection.Columns.Count
'将当前单元格中的文本写入到文件中,文本用引号括起来。
Print#FileNum,""""&Selection.Cells(RowCount,_
ColumnCount).Text&"""";
'检查单元格是否位于最后一列。
IfColumnCount=Selection.Columns.CountThen
'如果是,则写入一个空行。
Print#FileNum,
Else
'否则,则写入一个逗号。
Print#FileNum,",";
EndIf
'开始ColumnCount循环的下一个迭代。
NextColumnCount
'开始RowCount循环的下一个迭代。
NextRowCount
'关闭目标文件。
Close#FileNum
EndSub
4.运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“宏”并单击“宏”。
5.选择QuoteCommaExport宏,然后单击“运行”。
计算包含公式、文本或数字的单元格数量
在Excel中,您可以对包含公式、文本或数字的工作表中的单元格数量进行计算,方法是使用“定位条件”对话框选择单元格,然后运行计算所选单元格数量的宏。
例如,当您需要设置表格以确定合计列的每一行是否都包含公式而不用手动检查每一行时,此方法可能很有用。
选择单元格
要选择公式、文本或数字,请执行以下步骤:
1.在“编辑”菜单中,单击“定位”,然后单击“定位条件”。
2.在“定位条件”对话框中,要选择所有公式,请单击“公式”并确保选中“数字”、“文本”、“逻辑值”以及“错误”复选框。
要选择文本,请选择“常量”选项,然后仅单击并选中“文本”复选框。
要选择数字,请选择“常量”选项,然后仅单击并选中“数字”复选框。
计算所选单元格数量的VBA代码
要计算所选的单元格数量并在消息框中显示计算结果,请使用以下程序:
SubCount_Selection()
DimcellAsObject
DimcountAsInteger
count=0
ForEachcellInSelection
count=count+1
Nextcell
MsgBoxcount&"item(s)selected"
EndSub
您可以将此程序指定给一个命令按钮,这样,当您单击该按钮时,将显示所选项的数量。
使用Saved属性确定工作簿是否已发生更改
可以通过检查工作簿的Saved属性来确定工作簿是否已发生更改。
根据工作簿是否发生了更改,Saved属性将返回True或False值。
注意:
用户除了可以通过“事件”设置Saved属性外,还可以通过代码将其设置为True或False。
本节包含的示例宏说明了如何在这两种情况下使用Saved属性。
工作表中的各种情况(例如存在可变函数)都可能会影响Saved属性。
可变函数是指工作表中每次发生更改时都会重新计算的函数,而不管发生的更改是否影响到这些函数。
某些常见的可变函数包括RAND()、NOW()、TODAY()和OFFSET()。
如果活动工作簿包含未保存的更改,第一个宏将显示如下消息:
SubTestForUnsavedChanges()
IfActiveWorkbook.Saved=FalseThen
MsgBox"Thisworkbookcontainsunsavedchange
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 常用 代码