参考下面这些代码:
1:打开所有隐藏工作表2:循环宏
3:录制宏时调用“停止录制”工具栏
4:高级筛选5列不重复数据至指定表
5:双击单元执行宏(工作表代码)
6:双击指定区域单元执行宏(工作表代码)
7:进入单元执行宏(工作表代码)
8:进入指定区域单元执行宏(工作表代码)
9:在多个宏中依次循环执行一个(控件按钮代码)
10:在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
11:在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
12:根据A1单元文本隐藏/显示按钮(控件按钮代码)
13:当前单元返回按钮名称(控件按钮代码)
14:当前单元内容返回到按钮名称(控件按钮代码)
15:奇偶页分别打印
16:自动打印多工作表第一页
17:查找A列文本循环插入分页符
18:将A列最后数据行以上的所有B列大小调整为所在单元大小
19:返回光标所在行数 20:在A1返回当前选中单元格数量
21:返回当前工作簿中工作表数量
22:返回光标选择区域的行数和列数
23:工作表中包含数据的最大行数
24:返回A列数据的最大行数
25:将所选区域文本插入新建文本框
26:批量插入地址批注
27:批量插入统一批注
28:以A1单元内容批量插入批注
29:不连续区域插入当前文件名和表名及地址
30:不连续区域录入当前单元地址
31:连续区域录入当前单元地址
32:返回当前单元地址
33:不连续区域录入当前日期
34:不连续区域录入当前数字日期
35:不连续区域录入当前日期和时间
36:不连续区域录入对勾
37:不连续区域录入当前文件名
38:不连续区域添加文本
39:不连续区域插入文本
40:从指定位置向下同时录入多单元指定内容
41:按aa工作表A列的内容排列工作表标签顺序
42:以A1单元文本作表名插入工作表
43:删除所有未选定工作表
44:工作表标签排序
45:定义指定工作表标签颜色
46:在目录表建立本工作簿中各表链接目录
47:建立工作表文本目录
48:查另一文件的所有表名
49:当前单元录入计算机名
50:当前单元录入计算机用户名
51:解除所有工作表保护
52:为指定工作表加指定密码保护表
53:在有密码的工作表执行代码
54:执行前需要验证密码的宏(控件按钮代码)
55:执行前需要验证密码的宏()
56:拷贝A1公式和格式到A2
57:复制单元数值
58:插入数值条件格式
59:插入透明批注
60:添加文本
61:光标定位到指定工作表A列最后数据行下一单元
62:定位选定单元格式相同的所有单元格
63:按当前单元文本定位
64:按固定文本定位
65:删除包含固定文本单元的行或列
66:定位数据及区域以上的空值
67:右侧单元自动加5(工作表代码)
68:当前单元加2
69:A列等于A列减B列
70:用于光标选定多区域跳转指定单元(工作表代码)
71:将A1单元录入的数据累加到B1单元(工作表代码)
72:在指定颜色区域选择单元时添加/取消"√"(工作表代码)
73:在指定区域选择单元时添加/取消"√"(工作表代码)
74:双击指定单元,循环录入文本(工作表代码)
75:双击指定单元,循环录入文本(工作表代码)
76:单元区域引用(工作表代码)
77:在指定区域选择单元时数值加1(工作表代码)
78:混合文本的编号
79:指定区域单元双击数据累加(工作表代码)
80:选择单元区域触发事件(工作表代码)
81:当修改指定单元内容时自动执行宏(工作表代码)
82:被指定单元内容限制执行宏
83:双击单元隐藏该行(工作表代码)
84:高亮显示行(工作表代码)
85:高亮显示行和列(工作表代码)
86:为指定工作表设置滚动范围(工作簿代码)
87:在指定单元记录打印和预览次数(工作簿代码)
88:自动数字金额转大写(工作表代码)
89:将所有工作表的A1单元作为单击按钮(工作簿代码)
90:闹钟——到指定时间执行宏(工作簿代码)
91:改变Excel界面标题的宏(工作簿代码)
92:在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)
93:B列录入数据时在A列返回记录时间(工作表代码)
94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)
95:指定单元显示光标位置内容(工作表代码)
96:每编辑一个单元保存文件
97:指定允许编辑区域
98:解除允许编辑区域限制
99:删除指定行
100:删除A列为指定内容的行
1:打开所有隐藏工作表
Sub 打开所有隐藏工作表()
Dim i As Integer
For i = 1 To SheetsCount
Sheets(i)Visible = True
Next i
End Sub
2:循环宏
Sub 循环()
AAA = Range("C2")
Dim i As Long
Dim times As Long
times = AAA
'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)
For i = 1 To times
Call 过滤一行
If Range("完成标志") = "完成" Then
Exit For
'假如名为'完成标志'的命名单元的值等于'完成',则退出循环,假如一开始就等于'完成',则只执行一次循环就退出
'If Sheets("传送参数")Range("A" & i)Text = "完成" Then
Exit For
'假如某列出现"完成"内容则退出循环
Next i
End Sub
3:录制宏时调用“停止录制”工具栏
Sub 录制宏时调用停止录制工具栏()
ApplicationCommandBars("Stop Recording")Visible = True
End Sub
4:高级筛选5列不重复数据至指定表
Sub 高级筛选5列不重复数据至Sheet2()
Sheets("Sheet2")Range("A1:E65536") = "" '清除Sheet2的A:D列
Range("A1:E65536")AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2Range( _
"A1"), Unique:=True
Sheet2Columns("A:E")Sort Key1:=Sheet2Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
End Sub
5:双击单元执行宏(工作表代码)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Range("$A$1") = "关闭" Then
Exit Sub
Select Case TargetAddress
Case "$A$4"
Call 宏1
Cancel = True
Case "$B$4"
Call 宏2
Cancel = True
Case "$C$4"
Call 宏3
Cancel = True
Case "$E$4"
Call 宏4
Cancel = True
End Select
End Sub
6:双击指定区域单元执行宏(工作表代码)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Range("$A$1") = "关闭" Then Exit Sub
If Not ApplicationIntersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表
End Sub
7:进入单元执行宏(工作表代码)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '以单元格进入代替按钮对象调用宏
If Range("$A$1") = "关闭" Then Exit Sub
Select Case TargetAddress
Case "$A$5" '单元地址(TargetAddress),或命名单元名字(TargetName)
Call 宏1
Case "$B$5"
Call 宏2
Case "$C$5"
Call 宏3
End Select
End Sub
8:进入指定区域单元执行宏(工作表代码)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("$A$1") = "关闭" Then Exit Sub
If Not ApplicationIntersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call 打开隐藏表
End Sub
9:在多个宏中依次循环执行一个(控件按钮代码)
Private Sub CommandButton1_Click()
Static RunMacro As Integer
Select Case RunMacro
Case 0
宏1
RunMacro = 1
Case 1
宏2
RunMacro = 2
Case 2
宏3
RunMacro = 0
End Select
End Sub
10:在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
Private Sub CommandButton1_Click()
With CommandButton1
If Caption = "保护工作表" Then
Call 保护工作表
Caption = "取消工作表保护"
Exit Sub
End If
If Caption = "取消工作表保护" Then
Call 取消工作表保护
Caption = "保护工作表"
Exit Sub
End If
End With
End Sub
11:在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
Option Explicit Private Sub CommandButton1_Click()
With CommandButton1
If Caption = "宏1" Then
Call 宏1
Caption = "宏2"
Exit Sub
End If
If Caption = "宏2" Then
Call 宏2
Caption = "宏3"
Exit Sub
End If
If Caption = "宏3" Then
Call 宏3
Caption = "宏1"
Exit Sub
End If
End With
End Sub
12:根据A1单元文本隐藏/显示按钮(控件按钮代码)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1") > 2 Then
CommandButton1Visible = 1
Else
CommandButton1Visible = 0
End If
End Sub
Private Sub CommandButton1_Click()
重排窗口
End Sub
13:当前单元返回按钮名称(控件按钮代码)
Private Sub CommandButton1_Click()
ActiveCell = CommandButton1Caption
End Sub
14:当前单元内容返回到按钮名称(控件按钮代码)
Private Sub CommandButton1_Click()
CommandButton1Caption = ActiveCell
End Sub
15:奇偶页分别打印
Sub 奇偶页分别打印()
Dim i%, Ps%
Ps = ExecuteExcel4Macro("GETDOCUMENT(50)") '总页数
MsgBox "现在打印奇数页,按确定开始"
For i = 1 To Ps Step 2
ActiveSheetPrintOut from:=i, To:=i
Next i
MsgBox "现在打印偶数页,按确定开始"
For i = 2 To Ps Step 2
ActiveSheetPrintOut from:=i, To:=i
Next i
End Sub
16:自动打印多工作表第一页
Sub 自动打印多工作表第一页()
Dim sh As Integer
Dim x
Dim y
Dim sy
Dim syz
x = InputBox("请输入起始工作表名字:")
sy = InputBox("请输入结束工作表名字:")
y = Sheets(x)Index
syz = Sheets(sy)Index
For sh = y To syz
Sheets(sh)Select
Sheets(sh)PrintOut from:=1, To:=1
Next sh
End Sub
17:查找A列文本循环插入分页符
Sub 循环插入分页符()
' Selection = Workbooks("临时表")Sheets("表2")Range("A1") 调用指定地址内容
Dim i As Long
Dim times As Long
times = ApplicationWorksheetFunctionCountIf(Sheet1Range("a:a"), "分页") 'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)
For i = 1 To times
Call 插入分页符
Next i
End Sub
Sub 插入分页符()
CellsFind(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
Activate
ActiveWindowSelectedSheetsHPageBreaksAdd Before:=ActiveCell
End Sub
Sub 取消原分页()
CellsSelect
ActiveSheetResetAllPageBreaks
End Sub
18:将A列最后数据行以上的所有B列大小调整为所在单元大小
Sub 将A列最后数据行以上的所有B列大小调整为所在单元大小()
Dim Pic As Picture, i&
i = [A65536]End(xlUp)Row
For Each Pic In Sheet1Pictures
If Not ApplicationIntersect(PicTopLeftCell, Range("B1:B" & i)) Is Nothing Then
PicTop = PicTopLeftCellTop
PicLeft = PicTopLeftCellLeft
PicHeight = PicTopLeftCellHeight
PicWidth = PicTopLeftCellWidth
End If
Next
End Sub
19:返回光标所在行数
Sub 返回光标所在行数()
x = ActiveCellRow
Range("A1") = x
End Sub
20:在A1返回当前选中单元格数量
Sub 在A1返回当前选中单元格数量()
[A1] = SelectionCount
End Sub
21:返回当前工作簿中工作表数量
Sub 返回当前工作簿中工作表数量()
t = ApplicationSheetsCount
MsgBox t
End Sub
93:B列录入数据时在A列返回记录时间(工作表代码)
Public Sub Worksheet_Change(ByVal Target As Range)
If TargetColumn = 2 Then
TargetOffset(, -1) = Now
End If
End Sub
94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)
Public Sub Worksheet_Change(ByVal Target As Range)
If Not ApplicationIntersect(Target, [A1:A1000]) Is Nothing Then
If TargetColumn = 1 Then
TargetOffset(, 1) = Date
TargetOffset(, 2) = Time
End If
End If
End Sub
Public Sub Worksheet_Change(ByVal Target As Range)
If Not ApplicationIntersect(Target, [A1:A1000]) Is Nothing Then
If TargetColumn = 1 Then
TargetOffset(, 1) = Format(Now(), "yyyy-mm-dd")
TargetOffset(, 2) = Format(Now(), "h:mm:ss")
End If
End If
End Sub
95:指定单元显示光标位置内容(工作表代码)
Private Sub Worksheet_SelectionChange(ByVal T As Range)
Sheets(1)Range("A1") = Selection
End Sub
96:每编辑一个单元保存文件
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbookSave
End Sub
97:指定允许编辑区域
Sub 指定允许编辑区域()
ActiveSheetScrollArea = "B8:G15"
End Sub
98:解除允许编辑区域限制
Sub 解除允许编辑区域限制()
ActiveSheetScrollArea = ""
End Sub
99:删除指定行
Sub 删除指定行()
Workbooks("临时表")Sheets("表2")Range("5:5")Delete
End Sub
100:删除A列为指定内容的行
Sub 删除A列为指定内容的行()
Dim a, b As Integer
a = Sheet1[a65536]End(xlUp)Row
For b = a To 2 Step -1
If Cells(b, 1)Value = "删除" Then
Rows(b)Delete
End If
Next
End Sub
Excel VBA教程是把VB编程应用在Excel平台的一套实用教程,Excel +VBA双剑合壁,他可以帮助我们实现Excel原本实现不了的功能,可以让工作变得更高效,可以让操作变得变方便,可以把重复性的操作变得更有趣,随心所欲的定制自己的工作平台,还可以针对企业来开发各种系统如,人事管理系统、仓库系统、进存销系统等,对于经常要处理大量数据工作的朋友,学会了这套VBA教程你的工作将游刃有余。
VBA代表Visual Basic for Applications,它是一个来自Microsoft的事件驱动的编程语言。 现在它主要用于Microsoft Office应用程序,如MSExcel,MS-Word和MS-Access。本教程将讲解VBA的基础知识。每个部分都包含相关的主题和简单有用的示例。
为什么使用VBA?
为什么需要使用VBA在Excel中为MS-Excel本身提供了内置功能。MS-Excel提供了唯一的基本内在功能(函数),但是不足以执行复杂的计算。在这些情况下,VBA变成一种最明显好的解决方案。
一个最好的例子是非常难使用Excel内置计算贷款每月还款数,但使用VBA就很容易编写实现这样计算。
VBA代表Visual Basic应用程序,是来自微软的事件驱动编程语言,目前主要有Microsoft Office应用程序,如MS-Excel,MS-Word和MS-Access中使用。
它可以帮助技术人员构建自定义的应用程序和解决方案,以增强这些应用程序的功能。这个设计的好处是,我们不必把Visual Basic安装我们的PC上,但安装Office将隐帮助我们达到目的。
可以在所有Office版本(从微软Office97至微软Office2016)直接使用最新版本VBA。其中Excel的VBA是最流行的一种,并且我们可以建立在MS Excel中使用VBA非常强大的工具,包括使用线性程序。
读者
这个VBA教程是为初学者准备的,帮助他们理解VBA的基础知识。本教程中提供足够的VBA理解,可以通过此教程获取更高层次的专业知识。
前提条件
在继续本教程之前,需要安装MS Office,尤其是MS-Excel,还应该对计算机编程术语有基本的了解。有任何编程语言的基本了解将有助于您了解VBA编程中的概念,并能让您能快速学习和上手。
问题反馈
我们不能保证您在此VBA教程中不会遇到任何问题。本教程中的讲解,示例和代码等只是根据作者的理解来概括写出。由于作者水平和能力有限,因此不能保证所有的编写文章和示例均能准确无误。但是如果有遇到任何错误或问题,请反馈给我们,我们会及时纠正以方便后继读者阅读。
vba编程基础知识有下面这些:
VBA是编辑语言,宏是用VBA代码保存下来的程序。
VBA代码都是以“Sub宏名”及一对空括号开头,以“End Sub”结尾。
模块是保存过程的地方,一个模块可以保存多个不同类型的过程。
对象,工作簿,工作表,单元格,,图表,透视表等。
每个对象都有属性,属性是对象包含的内容或特点。(对象属性)
对象的某些属性也是对象,属性和对象是相对而言的。
每个对象都有方法,方法是指在对象上执行的某个动作。(对象方法)
VBA的编辑环境——VBE(Visual Basic Editor)
进入VBE的方法:
<Alt + F11>。
右击工作表,选择View Code 3 DEVELOPER下的Visual Basic。
立即窗口(view- Immdediate Window)中直接输入命令,回车后将显示命令执行后的结果。如果立即窗口未显示,快捷键Ctrl + G
因为VBA程序一般保存在模块里,所以先添加一个模块。
欢迎分享,转载请注明来源:表白网
评论列表(0条)