经典语句大全
篇一:[excel编程]Excel编程常用代码用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用Dim语句Dim a as integer声明a为整型变量Dim a 声明a为变体变量Dim a as string 声明a为字符串变量Dim a as curren
excel编程

篇一:[excel编程]Excel编程常用代码


用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用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为货币变量......声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String
* length(定长字符串)、Object、Variant、用户定义类型或对象类型。强制声明变量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中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。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).Select"当前单元格向下移动一格ActiveCell.Offset(-1 , 0).Select"当前单元格向上移动一格end
sub如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往sub my_offset 之下加一段代码 on error
resume next注意以下代码都不再添加 sub “代码名称” 和end
sub请自己添加!给当前单元格赋值ActiveCell.Value =
"你好!!!"给指定单元格赋值例如:A1单元格内容设为"HELLO"Range("a1").value="hello"又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"1.sheets("sheet2").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都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。Dim
my As WorksheetFor Each my In Worksheetsmy.PrintPreviewNext
my得到当前单元格的地址msgbox ActiveCell.Address得到当前日期及时间msgbox date &
chr(13) & time保护工作簿ActiveSheet.Protect
取消保护工作簿ActiveSheet.Unprotect给活动工作表改名为 "liu"ActiveSheet.Name =
"liu"打开一个应用程序AppActivate
(Shell("C:\WINDOWS\CALC.EXE"))增加一个工作表Worksheets.Add删除活动工作表activesheet.delete打开一个工作簿文件Workbooks.Open
FileName:="C:\My
Documents\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号字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遇错跳转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 = Day(MyDate)返回当天的时间Dim MyDate, MyYearMyDate =
Date MyYear = Year(MyDate)MsgBox MyYear
inputbox<输入框>XX=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
激活字体对话框Application.Dialogs(xlDialogActiveCellFont).Show
打开另存对话框Dim kk As Stringkk = Application.GetSaveAsFilename("excel
(*.xls), *.xls")Workbooks.Open kk
1 excle快捷键大全 对工具栏进行操作的快捷键激活菜单栏,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+)
使用 Excel 2003 工作表的 VBA 示例 
适用范围:Microsoft Office Excel 2003摘要:寻找能够为 Excel
工作表增加额外功能的宏。只需稍加练习,您就可以扩展这些程序,使其适合您自己的应用程序。
本页内容引言导出带有逗号和引号分隔符的文本文件计算包含公式、文本或数字的单元格数量使用
Saved 属性确定工作簿是否已发生更合并数据列数组中的总行数和总列数结论引言本文介绍几个
Microsoft Visual Basic for Applications (VBA) 宏,您可以使用这些宏为 Microsoft Office Excel
2003
工作簿和工作表增加额外的功能。这些宏将为您的应用程序提供新的功能或增强现有的功能。阅读示例的同时,您应该寻找扩展这些宏的方法,以适合您自己的情况。导出带有逗号和引号分隔符的文本文件Excel
没有自动将数据导出为文本文件的菜单命令,因此导出的文本文件同时带有逗号和引号分隔符。例如,没有命令能自动创建包含以下内容的文本文件:"Text1","Text2","Text3"但是,您可以使用
VBA 宏在 Excel 中创建该功能。这种文件格式是在诸如 Microsoft Office Access 2003 和 Microsoft Office
Word 2003 之类的应用程序中导入文本数据时常见的格式。您可以在如下所示的 VBA 宏中使用 Print
语句,导出同时带有逗号和引号分隔符的文本文件。要使该程序正常运行,必须在运行该程序之前选择包含数据的单元格。 使用以下示例之前,请执行以下步骤:
1. 打开一个新工作簿。 2. 在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11
组合键)。在“Visual Basic 编辑器”中,单击“插入”菜单,然后单击“模块”。 3. 将以下示例代码键入或粘贴到模块中:Sub
QuoteCommaExport()Dim DestFile As StringDim FileNum As IntegerDim
ColumnCount As IntegerDim RowCount As Integer" 提示用户指定目标文件名。DestFile
= InputBox("Enter the destination filename" & _Chr(10) & "(with
complete path and extension):", _"Quote-Comma Exporter")"
获取下一个可用的文件句柄编号。FileNum = FreeFile()" 关闭错误检查功能。On Error Resume
Next" 尝试打开目标文件以供输出。Open DestFile For Output As #FileNum"
如果出现错误,则报告错误并结束程序。If Err <> 0 ThenMsgBox "Cannot open filename "
& DestFileEndEnd If" 打开错误检查功能。On Error GoTo 0"
循环选择的每一行。For RowCount = 1 To Selection.Rows.Count" 循环选择的每一列。For
ColumnCount = 1 To Selection.Columns.Count"
将当前单元格中的文本写入到文件中,文本用引号括起来。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 RowCount" 关闭目标文件。Close #FileNumEnd
Sub4. 运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“宏”并单击“宏”。 5. 选择 QuoteCommaExport
宏,然后单击“运行”。 计算包含公式、文本或数字的单元格数量在 Excel
中,您可以对包含公式、文本或数字的工作表中的单元格数量进行计算,方法是使用“定位条件”对话框选择单元格,然后运行计算所选单元格数量的宏。例如,当您需要设置表格以确定合计列的每一行是否都包含公式而不用手动检查每一行时,此方法可能很有用。选择单元格要选择公式、文本或数字,请执行以下步骤:
1. 在“编辑”菜单中,单击“定位”,然后单击“定位条件”。 2.
在“定位条件”对话框中,要选择所有公式,请单击“公式”并确保选中“数字”、“文本”、“逻辑值”以及“错误”复选框。要选择文本,请选择“常量”选项,然后仅单击并选中“文本”复选框。要选择数字,请选择“常量”选项,然后仅单击并选中“数字”复选框。
计算所选单元格数量的 VBA 代码要计算所选的单元格数量并在消息框中显示计算结果,请使用以下程序:Sub
Count_Selection()Dim cell As ObjectDim count As Integercount =
0For Each cell In Selectioncount = count + 1Next cellMsgBox
count & " item(s) selected"End
Sub您可以将此程序指定给一个命令按钮,这样,当您单击该按钮时,将显示所选项的数量。使用 Saved
属性确定工作簿是否已发生更改 可以通过检查工作簿的 Saved 属性来确定工作簿是否已发生更改。根据工作簿是否发生了更改,Saved 属性将返回
True 或 False 值。 注意:用户除了可以通过“事件”设置 Saved 属性外,还可以通过代码将其设置为 True 或
False。本节包含的示例宏说明了如何在这两种情况下使用 Saved 属性。工作表中的各种情况(例如存在可变函数)都可能会影响 Saved
属性。可变函数是指工作表中每次发生更改时都会重新计算的函数,而不管发生的更改是否影响到这些函数。某些常见的可变函数包括 RAND()、NOW()、TODAY()
和 OFFSET()。如果活动工作簿包含未保存的更改,第一个宏将显示如下消息:Sub TestForUnsavedChanges()If
ActiveWorkbook.Saved = False ThenMsgBox "This workbook contains unsaved
changes."End IfEnd Sub下一个宏将关闭包含示例代码的工作簿并放弃对工作簿所做的所有更改:Sub
CloseWithoutChanges()ThisWorkbook.Saved = TrueThisWorkbook.CloseEnd
Sub下面的示例宏也将关闭工作簿并放弃更改:Sub
CloseWithoutChanges()ThisWorkbook.Close SaveChanges:=FalseEnd
Sub合并数据列 在 Excel
中,可以使用宏合并两个相邻列中的数据并在包含数据的右侧列中显示结果,完全不需要手动设置公式。本节包含的示例宏就可以实现此功能。Sub
ConcatColumns()Do While ActiveCell <> "" "
一直循环,直到活动单元格为空。ActiveCell.Offset(0, 1).FormulaR1C1 =
_ActiveCell.Offset(0, -1) & " " & ActiveCell.Offset(0,
0)ActiveCell.Offset(1, 0).SelectLoopEnd
Sub要使用宏,请执行以下步骤:1. 打开包含数据的工作簿。 2. 按 ALT+F11 组合键激活“Visual Basic
编辑器”。 3. 在“插入”菜单中,单击“模块”以插入一个模块。在模块的代码窗口中键入上面的宏。 4. 单击“文件”菜单中的“关闭并返回到
Microsoft Excel”。 5. 选择包含要合并的数据的工作表。 6. 单击要合并的右侧数据列的第一个单元格。例如,如果单元格
A1:A100 和 B1:B100 包含数据,则单击单元格 B1。 7. 在“工具”菜单中,指向“宏”并单击“宏”。选择 ConcatColumns
宏并单击“运行”。 注意:可以用语句 ActiveCell.Offset(0, 1).Formula 替换语句 ActiveCell.Offset(0,
1).FormulaR1C1。如果仅使用文本和数字(不包含公式),那么两个语句的效果相同。第一个语句末尾使用的 R1C1 表示第一行的第一列,这是 Excel
帮助主题中大多数示例使用的形式。数组中的总行数和总列数在 Excel
中,可以使用数组来计算和操作工作表中的数据,还可以使用宏将某个范围内的单元格中的值存储到一个数组中。本节中的示例宏代码将在一个矩形单元格区域中添加一行和一列,以包含该区域中每一行和每一列中的单元格总数。具体的步骤是,代码从活动工作表上活动单元格周围的当前单元格区域中读取数据。宏将这些数据存储在一个数组中,计算每一行和每一列中的单元格总数,然后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。
注意:此宏不会在工作表中添加任何公式,因此如果该范围内的单元格总数有变化,则必须重新运行宏。使用以下示例之前,请执行以下步骤: 1.
打开一个新工作簿。 2. 在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11
组合键)。在“Visual Basic 编辑器”中的“插入”菜单中,单击“模块”。 将以下示例代码键入或粘贴到模块中:Sub
TotalRowsAndColumns()" 此宏假定您已从" 要计算单元格总数的矩形区域内"
选择了一个单元格或一组单元格。行和列的单元格总数将出现在" 当前区域下面的行和右侧的列中。Dim r As IntegerDim c
As IntegerDim i As IntegerDim j As IntegerDim myArray As
Variant" 将 myArray 声明为变量将使数组可以接收" 一组单元格。此时,数组将自动转换为" 以下标
myArray(1,1) 开始的数组。" 指当前所选单元格周围的区域。With Selection.CurrentRegionr =
.Rows.Countc = .Columns.Count" 重新计算总行数和总列数并将结果存储到数组中。myArray =
.Resize(r + 1, c + 1)" 在下面的嵌套循环中,变量 i 跟踪" 行号,变量 j 跟踪" 列号。j
在可用列中每循环一次," i 就递增一,而 j" 则重新从一到 c 循环一次。For i = 1 To rFor j = 1
To c" 行 i 的总数myArray(i, c + 1) = myArray(i, c + 1) + myArray(i, j)"
列 j 的总数myArray(r + 1, j) = myArray(r + 1, j) + myArray(i, j)"
总计myArray(r + 1, c + 1) = myArray(r + 1, c + 1) + myArray(i, j)Next
jNext i" 将数组返回工作表,数组中现在包含一个" 新行和一个新列,用于存储总数。.Resize(r + 1, c +
1) = myArrayEnd WithEnd Sub3.
突出显示要求和区域中的一个单元格,在“工具”菜单中,指向“宏”并单击“宏”。 4. 选择 TotalRowsAndColumns 宏,然后单击“运行”。
注意:要执行与本示例中的运算类似的运算,可以修改宏代码。例如,要对选定范围内的单元格中包含的值进行减法、乘法或除法运算,可以更改数学运算符。结论本文介绍了各种
VBA
宏,使用这些宏可以减少使用工作表所需的工作量。此外,您还可以修改本文介绍的大多数宏以扩展它们的功能。始终记住可以在工具或提示库中添加更多宏,您将会受益匪浅。
VBA系列讲座(1):VBA是什么?
1.1 VBA是什么
  直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD
BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For
Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC
的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:   1.
VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化   2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.
  3.
要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL.
  尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD
ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.   *
VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.   * VBA可以称作EXCEL的“遥控器”.
  VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.   
此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序. 1.2 EXCEL环境中基于应用程序自动化的优点
  也许你想知道VBA可以干什么?使用VBA可以实现的功能包括:   1. 使重复的任务自动化.   2.
自定义EXCEL工具栏,菜单和界面.   3. 简化模板的使用.   4. 自定义EXCEL,使其成为开发平台.   5. 创建报表.
  6. 对数据进行复杂的操作和分析.   用EXCEL作为开发平台有如下原因:   1.
EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑.   2. EXCEL内置大量函数.   3. EXCEL界面熟悉.
  4. 可连接到多种数据库.
  用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只是使用它.
1.3 录制简单的宏   在介绍学习VBA之前,应该花几分钟录制一个宏。   新术语:“宏”,指一系列EXCEL能够执行的VBA语句。
  以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤:   1)打开新工作簿,确认其他工作簿已经关闭。
  2)选择A1单元格。调出“常用”工具栏。   3)选择“工具”—“宏”—“录制新宏”。
  4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。
  ★ 宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。
  5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。   6)单击“停止录制”工具栏按钮,结束宏录制过程。   ※
如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。   录制完一个宏后就可以执行它了。 1.4 执行宏
  当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行:
  1)选择任何一个单元格,比如A3。   2)选择“工具”—“宏”—“宏”,显示“宏”对话框。
  3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。
1.5 查看录制的代码   到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧.
  1)选择“工具”—“宏”—“宏”,显示“宏”对话框。   2)单击列表中的“改变颜色”,选择“编辑”按钮。
  此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)
Sub 改变颜色() ’ ’ 改变颜色 Macro ’ xw 记录的宏 2000-6-10 ’ ’
With Selection.Interior .ColorIndex = 3 .Pattern = xlSolid
.PatternColorIndex = xlAutomatic End With End Sub
将来会十分熟悉这种代码,虽然现在它们看上去像一种奇怪的外语。学习VBA或编程语言在某种程度上比较像在学习一种外语。 Sub
改变颜色():这是宏的名称。 中间的以“ ’”开头的五行称为“注释”,它在录制宏时自动产生。 以With 开头到End With
结束的结构是With结构语句,这段语句是宏的主要部分。注意单词“selection”,它代表“突出显示的区域”(即:选定区域)。With
Selection.Interior :它读作“选择区域的的内部”.这整段语句设置该区域内部的一些“属性”。 其中: .ColorIndex =
3:
将该内部设为红色。注意:有一小圆点,它的作用在于简化语句,小圆点代替出现在With后的词,它是With结构的一部分。另外:红色被数字化为3.(红色警戒是否可称作:3号警戒,嗯?)有兴趣的话,你将3改为其他数字试试看。
.Pattern =
xlSolid:设置该区域的内部图案。由于是录制宏,所以,虽然你并未设置这一项,宏仍然将其记录下来(因为在“图案”选项中有此一项,只是你为曾设置而已)。xlSolid表示纯色。
.PatternColorIndex = xlAutomatic:表示内部图案底纹颜色为自动配色。 End With:结束With 语句。
End Sub:整个宏的结束语 1.6 编辑录制的代码   
在上一节,我们录制了一个宏并查看了代码,代码中有两句实际上并不起作用。哪两句?现在,在宏中作一个修改,删除多余行,直到和下面代码相同: Sub
改变颜色() ’ ’ 改变颜色 Macro ’ xw 记录的宏 2000-6-10 ’ ’ With
Selection.Interior .ColorIndex = 3 End With End Sub
  完成后,在工作表中试验一下。你会发现结果和修改前的状况一样。在With 语句前加入一行: Range("A5").Select
  试着运行该宏,则无论开始选择哪个单元格,宏运行结果都是使A5单元格变红.
  现在可以看到,编辑录制的宏同样非常简单。需要编辑宏是因为以下三个方面的原因。一:在录制中出错而不得不修改。二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。比如:加入判断或循环等无法录制的语句。
1.7 录制宏的局限性   希望自动化的许多EXCEL过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有:
  1)录制的宏无判断或循环能力.   2)人机交互能力差,即用户无法进行输入,计算机无法给出提示.   3)无法显示EXCEL对话框.
  4)无法显示自定义窗体. 

篇二:[excel编程]为什么那么多人学习Excel VBA宏编程,看了这些就明白了!


excel为我们提供了很多好用的功能和函数,但还是有很多工作无法用现有功能和函数批量完成,比如多个excel表格的合并与拆分。而借助VBA语言编写的宏代码,这些看似无法批量处理或无法完成的事情,瞬间变得只是小菜一碟,也许你不懂VBA,也建议先收藏起来这些代码备用。
(下面示例选自 excel VBA零基础入门班1~3期 课件和作业内容,学习班报名联系客服特特微信:18539980003)
(第1个示例中,演示了VBA代码的使用方法,后面示例均和第1个类似,不再具体演示)
1、一次取消所有工作表的隐藏
Excel可以一次隐藏多个工作表,但取消工作表隐藏却需要一个个的设置,用VBA编写一段代码,一秒完成!
注意
  要想使用VBA功能,需要把代码粘贴到添加的模块中,详见动画演示
  要想保存VBA代码,需要把文件另存为xlsm格式文件,详见动画演示
动画演示:
代码:
Sub 取消隐藏()
For x = 1 To Sheets.Count
If Sheets(x).Name <> "总表"
Then
   Sheets(x).Visible = -1
End If
Next x
End Sub
Sub 隐藏()
For x = 1 To Sheets.Count
If Sheets(x).Name <> "总表" Then
   Sheets(x).Visible = 0
End If
Next x
End Sub 2、根据模板批量生成日报表
根据模板批量生成报表,没什么好方法,只能一个一个的复制然后修改名称。但这对VBA来说,只需点一下按钮即可瞬间完成。 代码:
Sub 生成报表()
 Dim x As Integer
 Dim sh As Worksheet
 For x = 1 To 31
   Set sh = Sheets.Add
   With sh
    .Name = x & "日"
    Sheets("日报模板").Range("1:15").Copy sh.Range("A1")
   End With
 Next x
End Sub
3、拆分工作表为单独的excel文件
把当前excel文件中除第1个工作外的所有工作表,均保存为单独的excel文件到3月文件夹中。
拆分演示(在拆分过程中会画面会停几秒,请耐心等待)
代码:
Sub 拆分表格()
 Dim x As Integer
 Dim wb As Workbook
 Application.ScreenUpdating = False
 For x = 2 To 32
   Sheets(x).Copy
   Set wb = ActiveWorkbook
   With wb
    .SaveAs ThisWorkbook.Path & "/3月/" & Sheets(x).Name & ".xlsx"
    .Close True
   End With
 Next x
 Application.ScreenUpdating = True
End Sub
4、合并多个Excel文件工作表到一个文件中
3月文件夹下有N张报表,要求把该文件夹中所有excel文件的第1个工作表合并到当前的excel文件中,以单独的工作表存放。
代码:
Sub 合并表格()
 Dim mypath As String
 Dim f As String
 Dim ribao As Workbook
 Application.ScreenUpdating = False
 mypath = ThisWorkbook.Path & "/3月/"
 f = Dir(ThisWorkbook.Path & "/3月/*.xlsx")
 Do
   Workbooks.Open (mypath & f)
   With ActiveWorkbook
     .Sheets(1).Move after:=ThisWorkbook.Sheets(Sheets.Count)
   End With
   f = Dir
 Loop Until Len(f) = 0
 Application.ScreenUpdating = True
End Sub

篇三:[excel编程]Excel VBA编程示例集52个及代码大全


搜集到并稍加整理的VBA编程示例集52个及代码大全,分13个分卷
另上传些工具
另有坛友反应VBA实例48权限多用户登陆系统有密码,先破解好:登陆名和密码为:admin,另VBA工程密码已去除
[ 本帖最后由 SSJJWW 于 2010-3-30 16:35 编辑 ]

excel编程

https://m.shanpow.com/mrmy/495136/

推荐访问:excel编程实例
《excel编程.doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
下一篇: volist
相关阅读经典语句大全 
热点推荐