excel常用宏集合剖析.docx
- 文档编号:13696156
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:103
- 大小:48.78KB
excel常用宏集合剖析.docx
《excel常用宏集合剖析.docx》由会员分享,可在线阅读,更多相关《excel常用宏集合剖析.docx(103页珍藏版)》请在冰点文库上搜索。
excel常用宏集合剖析
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打开所有隐藏工作表()
DimiAsInteger
Fori=1ToSheets.Count
Sheets(i).Visible=True
Nexti
EndSub
2:
循环宏
Sub循环()
AAA=Range("C2")
DimiAsLong
DimtimesAsLong
times=AAA
'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)
Fori=1Totimes
Call过滤一行
IfRange("完成标志")="完成"Then
ExitFor
'假如名为'完成标志'的命名单元的值等于'完成',则退出循环,假如一开始就等于'完成',则只执行一次循环就退出
'IfSheets("传送参数").Range("A"&i).Text="完成"ThenExitFor
'假如某列出现"完成"内容则退出循环
Nexti
EndSub
3:
录制宏时调用“停止录制”工具栏
Sub录制宏时调用停止录制工具栏()
Application.CommandBars("StopRecording").Visible=True
EndSub
4:
高级筛选5列不重复数据至指定表
Sub高级筛选5列不重复数据至Sheet2()
Sheets("Sheet2").Range("A1:
E65536")=""'清除Sheet2的A:
D列
Range("A1:
E65536").AdvancedFilterAction:
=xlFilterCopy,CopyToRange:
=Sheet2.Range(_
"A1"),Unique:
=True
Sheet2.Columns("A:
E").SortKey1:
=Sheet2.Range("A2"),Order1:
=xlAscending,
Header:
=xlGuess,_
OrderCustom:
=1,MatchCase:
=False,Orientation:
=xlTopToBottom,SortMethod_
:
=xlPinYin
EndSub
5:
双击单元执行宏(工作表代码)
PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)
IfRange("$A$1")="关闭"Then
ExitSub
SelectCaseTarget.Address
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
EndSelect
EndSub
6:
双击指定区域单元执行宏(工作表代码)
PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,CancelAsBoolean)
IfRange("$A$1")="关闭"ThenExitSub
IfNotApplication.Intersect(Target,Range("A4:
A9","C4:
C9"))IsNothingThenCall打开隐藏表
EndSub
7:
进入单元执行宏(工作表代码)
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)
'以单元格进入代替按钮对象调用宏
IfRange("$A$1")="关闭"ThenExitSub
SelectCaseTarget.Address
Case"$A$5"'单元地址(Target.Address),或命名单元名字(Target.Name)
Call宏1
Case"$B$5"
Call宏2
Case"$C$5"
Call宏3
EndSelect
EndSub
8:
进入指定区域单元执行宏(工作表代码)
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)
IfRange("$A$1")="关闭"ThenExitSub
IfNotApplication.Intersect(Target,Range("A4:
A9","C4:
C9"))IsNothingThenCall打开隐藏表
EndSub
9:
在多个宏中依次循环执行一个(控件按钮代码)
PrivateSubCommandButton1_Click()
StaticRunMacroAsInteger
SelectCaseRunMacro
Case0
宏1
RunMacro=1
Case1
宏2
RunMacro=2
Case2
宏3
RunMacro=0
EndSelect
EndSub
10:
在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
PrivateSubCommandButton1_Click()
WithCommandButton1
If.Caption="保护工作表"Then
Call保护工作表
.Caption="取消工作表保护"
ExitSub
EndIf
If.Caption="取消工作表保护"Then
Call取消工作表保护
.Caption="保护工作表"
ExitSub
EndIf
EndWith
EndSub
11:
在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)
OptionExplicit
PrivateSubCommandButton1_Click()
WithCommandButton1
If.Caption="宏1"Then
Call宏1
.Caption="宏2"
ExitSub
EndIf
If.Caption="宏2"Then
Call宏2
.Caption="宏3"
ExitSub
EndIf
If.Caption="宏3"Then
Call宏3
.Caption="宏1"
ExitSub
EndIf
EndWith
EndSub
12:
根据A1单元文本隐藏/显示按钮(控件按钮代码)
PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)
IfRange("A1")>2Then
CommandButton1.Visible=1
Else
CommandButton1.Visible=0
EndIf
EndSub
PrivateSubCommandButton1_Click()
重排窗口
EndSub
13:
当前单元返回按钮名称(控件按钮代码)
PrivateSubCommandButton1_Click()
ActiveCell=CommandButton1.Caption
EndSub
14:
当前单元内容返回到按钮名称(控件按钮代码)
PrivateSubCommandButton1_Click()
CommandButton1.Caption=ActiveCell
EndSub
15:
奇偶页分别打印
Sub奇偶页分别打印()
Dimi%,Ps%
Ps=ExecuteExcel4Macro("GET.DOCUMENT(50)")'总页数
MsgBox"现在打印奇数页,按确定开始."
Fori=1ToPsStep2
ActiveSheet.PrintOutfrom:
=i,To:
=i
Nexti
MsgBox"现在打印偶数页,按确定开始."
Fori=2ToPsStep2
ActiveSheet.PrintOutfrom:
=i,To:
=i
Nexti
EndSub
16:
自动打印多工作表第一页
Sub自动打印多工作表第一页()
DimshAsInteger
Dimx
Dimy
Dimsy
Dimsyz
x=InputBox("请输入起始工作表名字:
")
sy=InputBox("请输入结束工作表名字:
")
y=Sheets(x).Index
syz=Sheets(sy).Index
Forsh=yTosyz
Sheets(sh).Select
Sheets(sh).PrintOutfrom:
=1,To:
=1
Nextsh
EndSub
17:
查找A列文本循环插入分页符
Sub循环插入分页符()
'Selection=Workbooks("临时表").Sheets("表2").Range("A1")调用指定地址内容
DimiAsLong
DimtimesAsLong
times=Application.WorksheetFunction.CountIf(Sheet1.Range("a:
a"),"分页")
'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)
Fori=1Totimes
Call插入分页符
Nexti
EndSub
Sub插入分页符()
Cells.Find(What:
="分页",After:
=ActiveCell,LookIn:
=xlValues,LookAt:
=_
xlPart,SearchOrder:
=xlByRows,SearchDirection:
=xlNext,MatchCase:
=False)_
.Activate
ActiveWindow.SelectedSheets.HPageBreaks.AddBefore:
=ActiveCell
EndSub
Sub取消原分页()
Cells.Select
ActiveSheet.ResetAllPageBreaks
EndSub
18:
将A列最后数据行以上的所有B列图片大小调整为所在单元大小
Sub将A列最后数据行以上的所有B列图片大小调整为所在单元大小()
DimPicAsPicture,i&
i=[A65536].End(xlUp).Row
ForEachPicInSheet1.Pictures
IfNotApplication.Intersect(Pic.TopLeftCell,Range("B1:
B"&i))IsNothingThen
Pic.Top=Pic.TopLeftCell.Top
Pic.Left=Pic.TopLeftCell.Left
Pic.Height=Pic.TopLeftCell.Height
Pic.Width=Pic.TopLeftCell.Width
EndIf
Next
EndSub
19:
返回光标所在行数
Sub返回光标所在行数()
x=ActiveCell.Row
Range("A1")=x
EndSub
20:
在A1返回当前选中单元格数量
Sub在A1返回当前选中单元格数量()
[A1]=Selection.Count
EndSub
21:
返回当前工作簿中工作表数量
Sub返回当前工作簿中工作表数量()
t=Application.Sheets.Count
MsgBoxt
EndSub
22:
返回光标选择区域的行数和列数
Sub返回光标选择区域的行数和列数()
x=Selection.Rows.Count
y=Selection.Columns.Count
Range("A1")=x
Range("A2")=y
EndSub
23:
工作表中包含数据的最大行数
Sub包含数据的最大行数()
n=Cells.Find("*",,,,1,2).Row
MsgBoxn
EndSub
24:
返回A列数据的最大行数
Sub返回A列数据的最大行数()
n=Range("a65536").End(xlUp).Row
Range("B1")=n
EndSub
25:
将所选区域文本插入新建文本框
Sub将所选区域文本插入新建文本框()
ForEachragInSelection
n=n&rag.Value&Chr(10)
Next
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,ActiveCell.Left+ActiveCell.Width,ActiveCell.Top+ActiveCell.Height,250#,100).Select
Selection.Characters.Text="问题:
"&n
WithSelection.Characters(Start:
=1,Length:
=3).Font
.Name="黑体"
.FontStyle="常规"
.Size=12
EndWith
EndSub
26:
批量插入地址批注
Sub批量插入地址批注()
OnErrorResumeNext
DimrAsRange
IfSelection.Cells.Count>0Then
ForEachrInSelection
r.Comment.Delete
r.AddComment
r.Comment.Visible=False
r.Comment.TextText:
="本单元格:
"&r.Address&"of"&Selection.Address
Next
EndIf
EndSub
27:
批量插入统一批注
Sub批量插入统一批注()
DimrAsRange,msgAsString
msg=InputBox("请输入欲批量插入的批注","提示","随便输点什么吧")
IfSelection.Cells.Count>0Then
ForEachrInSelection
r.AddComment
r.Comment.Visible=False
r.Comment.TextText:
=msg
Next
EndIf
EndSub
28:
以A1单元内容批量插入批注
Sub以A1单元内容批量插入批注()
DimrAsRange
IfSelection.Cells.Count>0Then
ForEachrInSelection
r.AddComment
r.Comment.Visible=False
r.Comment.TextText:
=[a1].Text
Next
EndIf
EndSub
29:
不连续区域插入当前文件名和表名及地址
Sub批量插入当前文件名和表名及地址()
ForEachmycellInSelection
mycell.FormulaR1C1="["+ActiveWorkbook.Name+"]"+ActiveSheet.Name+"!
"+mycell.Address
Next
EndSub
30:
不连续区域录入当前单元地址
Sub区域录入当前单元地址()
ForEachmycellInSelection
mycell.FormulaR1C1=mycell.Address
Next
EndSub
31:
连续区域录入当前单元地址
Sub连续区域录入当前单元地址()
Selection="=ADDRESS(ROW(),COLUMN(),4,1)"
Selection.Copy
Selection.PasteSpecialPaste:
=xlPasteValues,Operation:
=xlNone,SkipBlanks_
:
=False,Transpose:
=False
EndSub
32:
返回当前单元地址
Sub返回当前单元地址()
d=ActiveCell.Address
[A1]=d
EndSub
33:
不连续区域录入当前日期
Sub区域录入当前日期()
Selection.FormulaR1C1=Format(Now(),"yyyy-m-d")
EndSub
34:
不连续区域录入当前数字日期
Sub区域录入当前数字日期()
Selection.FormulaR1C1=Format(Now(),"yyyymmdd")
EndSub
35:
不连续区域录入当前日期和时间
Sub区域录入当前日期和时间()
Selection.FormulaR1C1=Format(Now(),"yyyy-m-dh:
mm:
ss")
EndSub
36:
不连续区域录入对勾
Sub批量录入对勾()
Selection.FormulaR1C1="√"
EndSub
37:
不连续区域录入当前文件名
Sub批量录入当前文件名()
Selection.FormulaR1C1=ThisWorkbook.Name
EndSub
38:
不连续区域添加文本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- excel 常用 集合 剖析
![提示](https://static.bingdoc.com/images/bang_tan.gif)