《VBA命令资料大全汇集.doc》由会员分享,可在线阅读,更多相关《VBA命令资料大全汇集.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/ VBA命令大全使用Dim语句Dim a as integer 声明a为整型变量Dim a 声明a为变体变量Dim a as string 声明a为字符串变量Dim a as currency ,b as currency ,c as currency 声明a,b,c为货币变量Dim z As Variant 定义实数(带小数).声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、 Date、String(只限变长字符串)、String * length(定长字符串)、Object、Variant、用
2、户定义类型或对象类型。强制声明变量Option Explicit说明:该语句必在任何过程之前出现在模块中。声明常数用来代替文字值。Const 常数的默认状态是 Private。Const My = 456 声明 Public 常数。Public Const MyString = HELP 声明 Private Integer 常数。Private Const MyInt As Integer = 5 在同一行里声明多个常数。Const MyStr = Hello, MyDouble As Double = 3.4567选择当前单元格所在区域在EXCEL97中,有一个十分好的功能,他就是把鼠标放
3、置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。Sub My_SelectSelection.CurrentRegion.SelectEnd sub返回当前单元格中数据删除前后空格后的值sub my_trimmsgbox Trim(ActiveCell.Value)end sub单元格位移sub my_offsetActiveCell.Offset(0, 1).Select当前单元格向左移动一格ActiveCell.Offset(0, -1).Select当前单元格向右移动一格ActiveCell.Offset(1 , 0).Sel
4、ect当前单元格向下移动一格ActiveCell.Offset(-1 , 0).Select当前单元格向上移动一格end sub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往sub my_offset 之下加一段代码 on error resume next 注意以下代码都不再添加 sub “代码名称” 和end sub请自己添加!给当前单元格赋值ActiveCell.Value = 你好!给指定单元格赋值例如:单元格内容设为Range(a1).value=hello又如:你现在的工作簿在sheet1上,你要往sheet2的单元格中插入1.sheets(sheet2)
5、.selectrange(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都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。Di
6、m my As WorksheetFor Each my In Worksheetsmy.PrintPreviewNext my得到当前单元格的地址msgbox ActiveCell.Address得到当前日期及时间msgbox date & chr(13) & time保护工作簿ActiveSheet.Protect取消保护工作簿ActiveSheet.Unprotect给活动工作表改名为 liuActiveSheet.Name = liu打开一个应用程序AppActivate (Shell(C:WINDOWSCALC.EXE)增加一个工作表Worksheets.Add删除活动工作表acti
7、vesheet.delete打开一个工作簿文件Workbooks.Open FileName:=C:My DocumentsBook2.xls关闭活动窗口ActiveWindow.Close单元格格式选定单元格左对齐Selection.HorizontalAlignment = xlLeft选定单元格居中Selection.HorizontalAlignment = xlCenter选定单元格右对齐Selection.HorizontalAlignment = xlRight选定单元格为百分号风格Selection.Style = Percent选定单元格字体为粗体Selection.Font
8、.Bold = True选定单元格字体为斜体Selection.Font.Italic = True选定单元格字体为宋体20号字With Selection.Font.Name = 宋体.Size = 20End WithWith 语句With 对象.描述End With清除单元格ActiveCell.Clear 删除所有文字、批注、格式返回选定区域的行数MsgBox Selection.Rows.Count返回选定区域的列数MsgBox Selection.Columns.Count返回选定区域的地址Selection.Address忽略所有的错误ON ERROR RESUME NEXT遇错
9、跳转on error goto err_handle中间的其他代码err_handle: 标签跳转后的代码删除一个文件kill c:1.txt定制自己的状态栏Application.StatusBar = 现在时刻: & Time恢复自己的状态栏Application.StatusBar = false用代码执行一个宏Application.Run macro:=text滚动窗口到a1的位置ActiveWindow.ScrollRow = 1ActiveWindow.ScrollColumn = 1定制系统日期Dim MyDate, MyDayMyDate = #12/12/69#MyDay
10、= Day(MyDate)返回当天的时间Dim MyDate, MyYearMyDate = DateMyYear = Year(MyDate)MsgBox MyYearinputboxXX=InputBox (Enter number of months to add)得到一个文件名Dim kk As Stringkk = Application.GetOpenFilename(EXCEL (*.XLS), *.XLS, Title:=提示:请打开一个EXCEL文件:)msgbox kk打开zoom对话框Application.Dialogs(xlDialogZoom).Show激活字体对话
11、框Application.Dialogs(xlDialogActiveCellFont).Show打开另存对话框Dim kk As Stringkk = Application.GetSaveAsFilename(excel (*.xls), *.xls)Workbooks.Open kk1 excle快捷键大全对工具栏进行操作的快捷键激活菜单栏,F10,Alt选定前一个或下一个工具栏,Ctrl+Tab或Ctrl+Shift+Tab选定工具栏中的下一个或前一个按钮或菜单,Tab或Shift+Tab(当某个工具栏被激活时)打开选定的菜单,Enter运行选按钮的操作,Enter在选定的文本框中输入
12、文本,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
13、通过“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
14、最大化或恢复工作薄窗口,Ctrl+F10在“打开”或“另存为”对话框中更新可见的文件,F5使用对话框进行操作的快捷键切换到对话框中的下一个选项卡,Ctrl+Tab或Ctrl+PageDown切换到对话框中的前一个选项卡,Ctrl+Shift+Tab或Ctrl+PageUp移动到下一个选项或选项组,Tab移动到前一个选项或选项组,Shift+Tab在活动下拉列表框的选项间移动,或在选项组选项间移动,方向键招待活动按钮的操作,或选定或清除当前复选框,空格键取消命令或关闭对话框,Esc在文本框中进行操作的快捷键移动到内容的开始,Home移动到内容的最后,End向左或向右移动一个字符,左右方向键向左或
15、向右移动一个字,Ctrl+左右方向键选定从插入点到开始的输入内容,Shift+Home选定从插入点到最后的输入内容,Shift+End选定或取消左面的一个字符,Shift+左方向键选定或取消右面的一个字符,Shift+右方向键选定或取消左面的一个字,Ctrl+Shift+左方向键选定或取消右面的一个字,Ctrl+Shift+右方向键在工作表和工作薄中选定单元格、列、行或对象的快捷键选定当前单元格周围的区域,Ctrl+Shift+*(星号)将选定区域扩展一个单元格宽度,Shift+方向键将选定区域扩展到与活动单元格同一行或同一列的最后一个非空白单元格,Ctrl+Shift+方向键将选定区域扩展到
16、行首,Shift+Home将选定区域扩展到工作表的开始,Ctrl+Shift+Home将选定区域扩展到工作表的最后一个包含数据的单元格,Ctrl+Shift+End选定整列,Ctrl+空格键选定整行,Shift+空格键选定整个工作表,Ctrl+A若已选定多个单元格,则只选定其中的活动单元格,Shift+Backspace将选定区域向下扩展一屏,Shift+PageDown将选定区域向上扩展一屏,Shift+PageUp在选定一个对象时,选定工作表上的所有对象,Ctrl+Shift+空格键在隐藏对象、显示对象与对象占位符之间切换,Ctrl+6显示或隐藏“常用”工具栏,Ctrl+7分级显示数据的快
17、捷键取消行或列分组,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由行或列标
18、志创建名称,Ctrl+Shift+F3向下填充,Ctrl+D向右填充,Ctrl+R用当前输入项填充选定的单元格区域,Ctrl+Enter完成单元格输入并在选定区域中下移,Enter完成单元格输入并在选定区域中上移,Shift+Enter完成单元格输入并在选定区域中右移,Tab完成单元格输入并在选定区域中左移,Shift+Tab在单元格或编辑栏中使用的快捷键键入公式,=(等号)取消单元格或编辑栏中的输入项,Esc编辑当前单元格,F2编辑活动单元格并清除其内容,或在编辑时删除前一个字符,Backspace将名称粘贴到公式中,F3定义名称,Ctrl+F3计算所有打开工作薄中的所有工作表,F9计算活动
19、工作表,Shift+F9输入“自动求和”公式,Alt+=(等号)输入日期,Ctrl+;输入时间,Ctrl+Shift+:插入超级链接,Ctrl+K完成单元格输入,Enter将当前单元格上方单元格中的数值复制到当前单元格或编辑栏,Ctrl+Shift+(双引号)将当前单元格上方单元格中的公式复制到当前单元格或编辑栏,Ctrl+(单引号)在显示单元格值与单元格公式间转换,Ctrl+(撇号)输入数组公式,Ctrl+Shift+Enter键入有效函数名后,显示公式选项板,Ctrl+A键入有效函数名后,为该函数插入变量名和括号,Ctrl+Shift+A显示“记忆式键入”列表,Ctrl+下方向键快捷键与数
20、据格式设置显示“样式”命令,Alt+(单引号)显示“单元格”命令,Ctrl+1应用常规数字格式,Ctrl+Shift+应用带两个小数位的“贷币”格式,Ctrl+Shift+$应用不带小数位的“百分比”格式,Ctrl+shift+%应用带两个小数位的“科学记数”数字格式,Ctrl+shift+应用年月日“日期”格式,Ctrl+shift+#应用小时和分钟“时间”格式,并表明上午或下午,Ctrl+shift+应用外边框,Ctrl+shift+&取消选定单元格区域中的所有边框,Ctrl+shift+_应用或取消字体加粗格式,Ctrl+B应用或取消字体倾斜格式,Ctrl+I应用或取消字体下划线格式,C
21、trl+U应用或取消删除线格式,Ctrl+5隐藏行,Ctrl+9取消隐藏行,Ctrl+Shift+(隐藏列,Ctrl+0取消隐藏列,Ctrl+Shift+)使用 Excel 2003 工作表的 VBA 示例 适用范围:Microsoft Office Excel 2003摘要:寻找能够为 Excel 工作表增加额外功能的宏。只需稍加练习,您就可以扩展这些程序,使其适合您自己的应用程序。本页内容 引言 导出带有逗号和引号分隔符的文本文件 计算包含公式、文本或数字的单元格数量 使用 Saved 属性确定工作簿是否已发生更 合并数据列 数组中的总行数和总列数 结论引言本文介绍几个 Microsoft
22、 Visual Basic for Applications (VBA) 宏,您可以使用这些宏为 Microsoft Office Excel 2003 工作簿和工作表增加额外的功能。这些宏将为您的应用程序提供新的功能或增强现有的功能。阅读示例的同时,您应该寻找扩展这些宏的方法,以适合您自己的情况。 导出带有逗号和引号分隔符的文本文件Excel 没有自动将数据导出为文本文件的菜单命令,因此导出的文本文件同时带有逗号和引号分隔符。例如,没有命令能自动创建包含以下内容的文本文件:Text1,Text2,Text3 但是,您可以使用 VBA 宏在 Excel 中创建该功能。这种文件格式是在诸如 Mi
23、crosoft Office Access 2003 和 Microsoft Office Word 2003 之类的应用程序中导入文本数据时常见的格式。您可以在如下所示的 VBA 宏中使用 Print 语句,导出同时带有逗号和引号分隔符的文本文件。要使该程序正常运行,必须在运行该程序之前选择包含数据的单元格。使用以下示例之前,请执行以下步骤:1. 打开一个新工作簿。2. 在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中,单击“插入”菜单,然后单击“模块”。3. 将以下示例代码键入或粘
24、贴到模块中:Sub QuoteCommaExport() Dim DestFile As String Dim FileNum As Integer Dim ColumnCount As Integer Dim RowCount As Integer 提示用户指定目标文件名。 DestFile = InputBox(Enter the destination filename & _ Chr(10) & (with complete path and extension):, _ Quote-Comma Exporter) 获取下一个可用的文件句柄编号。 FileNum = FreeFile(
25、) 关闭错误检查功能。 On Error Resume Next 尝试打开目标文件以供输出。 Open DestFile For Output As #FileNum 如果出现错误,则报告错误并结束程序。 If Err 0 Then MsgBox Cannot open filename & DestFile End End If 打开错误检查功能。 On Error GoTo 0 循环选择的每一行。 For RowCount = 1 To Selection.Rows.Count 循环选择的每一列。 For ColumnCount = 1 To Selection.Columns.Count
26、 将当前单元格中的文本写入到文件中,文本用引号括起来。 Print #FileNum, & Selection.Cells(RowCount, _ ColumnCount).Text & ; 检查单元格是否位于最后一列。 If ColumnCount = Selection.Columns.Count Then 如果是,则写入一个空行。 Print #FileNum, Else 否则,则写入一个逗号。 Print #FileNum, ,; End If 开始 ColumnCount 循环的下一个迭代。 Next ColumnCount 开始 RowCount 循环的下一个迭代。 Next Ro
27、wCount 关闭目标文件。 Close #FileNum End Sub 4. 运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“宏”并单击“宏”。5. 选择 QuoteCommaExport 宏,然后单击“运行”。 计算包含公式、文本或数字的单元格数量在 Excel 中,您可以对包含公式、文本或数字的工作表中的单元格数量进行计算,方法是使用“定位条件”对话框选择单元格,然后运行计算所选单元格数量的宏。例如,当您需要设置表格以确定合计列的每一行是否都包含公式而不用手动检查每一行时,此方法可能很有用。选择单元格要选择公式、文本或数字,请执行以下步骤:1. 在“编辑”菜单中,单击“定位
28、”,然后单击“定位条件”。2. 在“定位条件”对话框中,要选择所有公式,请单击“公式”并确保选中“数字”、“文本”、“逻辑值”以及“错误”复选框。要选择文本,请选择“常量”选项,然后仅单击并选中“文本”复选框。要选择数字,请选择“常量”选项,然后仅单击并选中“数字”复选框。计算所选单元格数量的 VBA 代码要计算所选的单元格数量并在消息框中显示计算结果,请使用以下程序:Sub Count_Selection() Dim cell As Object Dim count As Integer count = 0 For Each cell In Selection count = count +
29、 1 Next cell MsgBox count & item(s) selected End Sub 您可以将此程序指定给一个命令按钮,这样,当您单击该按钮时,将显示所选项的数量。 使用 Saved 属性确定工作簿是否已发生更改可以通过检查工作簿的 Saved 属性来确定工作簿是否已发生更改。根据工作簿是否发生了更改,Saved 属性将返回 True 或 False 值。注意:用户除了可以通过“事件”设置 Saved 属性外,还可以通过代码将其设置为 True 或 False。本节包含的示例宏说明了如何在这两种情况下使用 Saved 属性。工作表中的各种情况(例如存在可变函数)都可能会影响
30、 Saved 属性。可变函数是指工作表中每次发生更改时都会重新计算的函数,而不管发生的更改是否影响到这些函数。某些常见的可变函数包括 RAND()、NOW()、TODAY() 和 OFFSET()。如果活动工作簿包含未保存的更改,第一个宏将显示如下消息:Sub TestForUnsavedChanges() If ActiveWorkbook.Saved = False Then MsgBox This workbook contains unsaved changes. End If End Sub 下一个宏将关闭包含示例代码的工作簿并放弃对工作簿所做的所有更改:Sub CloseWitho
31、utChanges() ThisWorkbook.Saved = True ThisWorkbook.Close End Sub 下面的示例宏也将关闭工作簿并放弃更改:Sub CloseWithoutChanges() ThisWorkbook.Close SaveChanges:=False End Sub 合并数据列在 Excel 中,可以使用宏合并两个相邻列中的数据并在包含数据的右侧列中显示结果,完全不需要手动设置公式。本节包含的示例宏就可以实现此功能。Sub ConcatColumns() Do While ActiveCell 一直循环,直到活动单元格为空。 ActiveCell.O
32、ffset(0, 1).FormulaR1C1 = _ ActiveCell.Offset(0, -1) & & ActiveCell.Offset(0, 0) ActiveCell.Offset(1, 0).Select Loop End Sub 要使用宏,请执行以下步骤:1. 打开包含数据的工作簿。2. 按 ALT+F11 组合键激活“Visual Basic 编辑器”。3. 在“插入”菜单中,单击“模块”以插入一个模块。在模块的代码窗口中键入上面的宏。4. 单击“文件”菜单中的“关闭并返回到 Microsoft Excel”。5. 选择包含要合并的数据的工作表。6. 单击要合并的右侧数据
33、列的第一个单元格。例如,如果单元格 A1:A100 和 B1:B100 包含数据,则单击单元格 B1。7. 在“工具”菜单中,指向“宏”并单击“宏”。选择 ConcatColumns 宏并单击“运行”。注意:可以用语句 ActiveCell.Offset(0, 1).Formula 替换语句 ActiveCell.Offset(0, 1).FormulaR1C1。如果仅使用文本和数字(不包含公式),那么两个语句的效果相同。第一个语句末尾使用的 R1C1 表示第一行的第一列,这是 Excel 帮助主题中大多数示例使用的形式。 数组中的总行数和总列数在 Excel 中,可以使用数组来计算和操作工作
34、表中的数据,还可以使用宏将某个范围内的单元格中的值存储到一个数组中。本节中的示例宏代码将在一个矩形单元格区域中添加一行和一列,以包含该区域中每一行和每一列中的单元格总数。具体的步骤是,代码从活动工作表上活动单元格周围的当前单元格区域中读取数据。宏将这些数据存储在一个数组中,计算每一行和每一列中的单元格总数,然后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。注意:此宏不会在工作表中添加任何公式,因此如果该范围内的单元格总数有变化,则必须重新运行宏。使用以下示例之前,请执行以下步骤:1. 打开一个新工作簿。2. 在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑
35、器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中的“插入”菜单中,单击“模块”。将以下示例代码键入或粘贴到模块中:Sub TotalRowsAndColumns() 此宏假定您已从 要计算单元格总数的矩形区域内 选择了一个单元格或一组单元格。行和列的单元格总数将出现在 当前区域下面的行和右侧的列中。 Dim r As Integer Dim c As Integer Dim i As Integer Dim j As Integer Dim myArray As Variant 将 myArray 声明为变量将使数组可以接收 一组单元格。此时,数组将自动转换为 以下标 myArray(1,1) 开始的数组。 指当前所选单元格周围的区域。 With Selection.CurrentRegion r = .Rows.Count c = .Columns.Count 重新计算总行数和总列数并将结果存储到数组中。 myArray = .Resize(r + 1, c + 1) 在下面的嵌套循环中,变量 i 跟踪 行号,变量 j 跟踪 列号。j 在可用列中每循环一次, i 就递增一,而 j 则重新从一到 c 循环一次。
限制150内