259个常用宏
Excel宏大量简单常用宏
Excel宏大量简单常用宏代码目录链接类别打开全部隐藏工作表点击循环宏点击录制宏时调用“停止录制”工具栏点击高级筛选5列不重复数据至指定表点击双击单元执行宏(工作表代码)点击双击指定区域单元执行宏(工作表代码)点击进入单元执行宏(工作表代码)点击进入指定区域单元执行宏(工作表代码)点击在多个宏中依次循环执行一个(控件按钮代码)点击在两个宏中依次循环执行一个并相应修改按钮名称点击(控件按钮代码)在三个宏中依次循环执行一个并相应修改按钮名称点击(控件按钮代码)根据A1单元文本隐藏/显示按钮(控件按钮代码)点击当前单元返回按钮名称(控件按钮代码)点击当前单元内容返回到按钮名称(控件按钮代码)点击奇偶页分别打印点击打印自动打印多工作表第一页点击打印查找A列文本循环插入分页符点击打印将A列最后数据行以上的所有B列图片大小调整为所在点击对象单元大小返回光标所在行数点击查找和引用在A1返回当前选中单元格数量点击查找和引用返回当前工作簿中工作表数量点击查找和引用返回光标选择区域的行数和列数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用将所选区域文本插入新建文本框点击对象批量插入地址批注点击批注批量插入统一批注点击批注以A1单元内容批量插入批注点击批注不连续区域插入当前文件名和表名及地址点击单元赋值不连续区域录入当前单元地址点击单元赋值连续区域录入当前单元地址点击单元赋值返回当前单元地址点击单元赋值不连续区域录入当前日期点击单元赋值不连续区域录入当前数字日期点击单元赋值不连续区域录入当前日期和时间点击单元赋值不连续区域录入对勾点击单元赋值不连续区域录入当前文件名点击单元赋值不连续区域添加文本点击单元赋值不连续区域插入文本点击单元赋值从指定位置向下同时录入多单元指定内容点击单元赋值按aa工作表A列的内容排列工作表标签顺序点击工作表工作表工作表工作表工作表文件管理工作表工作表点击单元赋值当前单元录入计算机用户名点击单元赋值解除全部工作表保护点击工作表为指定工作表加指定密码保护表点击密码在有密码的工作表执行代码点击密码执行前需要验证密码的宏(控件按钮代码)点击密码拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式插入透明批注点击批注单元赋值定位定位定位定位定位定位点击单元赋值当前单元加2点击单元赋值单元赋值定位单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值事件事件事件事件其他其他定位打印单元赋值对象事件其他信息事件单元赋值单元赋值点击事件指定允许编辑区域点击编辑解除允许编辑区域限制点击编辑删除指定行点击行列操作删除A列为指定内容的行点击行列操作删除A列非数字单元行点击行列操作有条件删除当前行点击行列操作选择下一行点击定位选择第5行开始所有数据行点击定位选择光标或选区所在行点击定位定位名称点击名称选择到指定列的最后行点击定位将Sheet1的A列的非空值写到Sheet2的A列点击单元赋值将名称1的数据写到名称2点击名称定位格式对象点击数据单元赋值名称名称点击工作表按A列数据批量修改表名称点击工作表按A列数据批量创建新表(控件按钮代码)点击工作表清除剪贴板点击其他批量清除软回车点击其他判断指定文件是否已经打开点击事件当前文件另存到指定目录点击文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理引用指定位置单元内容为部分文件名另存文件点击文件管理将A 列数据排序到D列点击单元赋值将指定范围的数据排列到D列点击单元赋值定位行列操作点击数据取消数据有效限制点击数据重排窗口点击窗口按当前单元文本选择打开指定文件单元点击定位回车光标向右点击定位回车光标向下点击定位保护工作表时取消选定锁定单元点击工作表文件管理行列操作工作表工作表工作表工作表格式工作表工作表点击工作表工作表行列操作定位点击定位固定区域单元分类变色点击格式格式事件事件数据点击其他显示光标所在单元的批注的代码点击其他单元赋值事件事件事件事件点击单元赋值选择2至4行点击定位在当前选区有条件替换数值为文本点击事件自动筛选全部显示指定列点击筛选自动筛选第2列值为A的行点击筛选取消自动筛选()点击筛选全部显示指定表的自动筛选点击筛选强行合并单元点击格式格式单元赋值事件事件点击行列操作在A列产生不重复随机数点击单元赋值单元赋值单元赋值点击其他返回指定单元的行高和列宽点击信息指定行高和列宽点击格式指定单元的行高和列宽与A1单元相同点击格式填公式点击单元赋值工作表工作表单元赋值自定义函数信息超链接超链接超链接超链接查找和引用点击查找和引用返回表中各非空单元区域地址(行搜索)点击查找和引用查找和引用查找和引用查找和引用查找和引用查找和引用点击查找和引用返回A列非空单元数量点击查找和引用返回圆周率π点击其他定义指定单元内容为页眉/页脚点击打印提示并全部清除当前选择区域点击单元赋值全部清除当前选择区域点击单元赋值清除指定区域数值点击单元赋值对指定工作表执行取消隐藏》打印》隐藏工作表点击打印打开文件时执行指定宏(工作簿代码)点击事件关闭文件时执行指定宏(工作簿代码)点击事件信息事件点击工作表重算指定表点击工作表将第5行移到窗口的最上面点击窗口对第一张工作表的指定区域进行排序点击单元赋值显示指定工作表的打印预览点击打印用单元格A1的内容作为文件名另存当前工作簿点击文件管理[禁用/启用]保存和另存的代码点击文件管理在A和B列返回当前选区的名称和公式点击单元赋值朗读朗读A列,按ESC键中止点击语音朗读固定语句,请按ESC键终止点击语音在M和N列的14行以下选择单元时显示调用日历控件点击对象(工作表代码)添加自定义序列点击其他弹出打印对话框点击打印打印事件事件点击工作表把a列不重复值取到e列点击查找和引用查找和引用工作表点击事件事件其他点击其他按照当前行A列的图片名称插入图片到H列点击图片当前行下插入1行点击工作表取消指定行或列的隐藏点击工作表复制单元格所在行点击其他复制单元格所在列点击其他新建一个工作表点击工作表新建一个工作簿点击工作簿工作表事件工作簿点击工作簿合并A1至C1的内容写到D15单元的批注中点击批注自动重算点击其他手动重算点击其他EH帖子地址net/dispbbs.asp?boardid=4&id=239820。
Word编辑常用宏荟萃
.LineUnitAfter = 0
.AutoAdjustRightIndent = True
.DisableLineHeightGrid = False
.FarEastLineBreakControl = True
.NoLineNumber = False
.Hyphenation = True
.FirstLineIndent = CentimetersToPoints(0)
.OutlineLevel = wdOutlineLevel1 '大纲级别
.TextRetrievalMode.IncludeHiddenText = True
myCodes = .Text
myCodes = VBA.Replace(myCodes, Chr(19), "{")
myCodes = VBA.Replace(myCodes, Chr(21), "}")
.WordWrap = True
.HangingPunctuation = True
.HalfWidthPunctuationOnTopOfLine = False
.AddSpaceBetweenFarEastAndAlpha = True
= "宋体"
Selection.Font.Size = 22
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.Execute
Excel宏---259个常用宏
代码目录链接类别打开全部隐藏工作表点击循环宏点击录制宏时调用“停止录制”工具栏点击高级筛选5列不重复数据至指定表点击双击单元执行宏(工作表代码)点击双击指定区域单元执行宏(工作表代码)点击进入单元执行宏(工作表代码)点击进入指定区域单元执行宏(工作表代码)点击在多个宏中依次循环执行一个(控件按钮代码)点击在两个宏中依次循环执行一个并相应修改按钮名称点击(控件按钮代码)在三个宏中依次循环执行一个并相应修改按钮名称点击(控件按钮代码)根据A1单元文本隐藏/显示按钮(控件按钮代码)点击当前单元返回按钮名称(控件按钮代码)点击当前单元内容返回到按钮名称(控件按钮代码)点击奇偶页分别打印点击打印自动打印多工作表第一页点击打印查找A列文本循环插入分页符点击打印将A列最后数据行以上的所有B列图片大小调整为所在点击对象单元大小返回光标所在行数点击查找和引用在A1返回当前选中单元格数量点击查找和引用返回当前工作簿中工作表数量点击查找和引用返回光标选择区域的行数和列数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用将所选区域文本插入新建文本框点击对象批量插入地址批注点击批注批量插入统一批注点击批注以A1单元内容批量插入批注点击批注不连续区域插入当前文件名和表名及地址点击单元赋值不连续区域录入当前单元地址点击单元赋值连续区域录入当前单元地址点击单元赋值返回当前单元地址点击单元赋值不连续区域录入当前日期点击单元赋值不连续区域录入当前数字日期点击单元赋值不连续区域录入当前日期和时间点击单元赋值不连续区域录入对勾点击单元赋值不连续区域录入当前文件名点击单元赋值不连续区域添加文本点击单元赋值不连续区域插入文本点击单元赋值从指定位置向下同时录入多单元指定内容点击单元赋值按aa工作表A列的内容排列工作表标签顺序点击工作表工作表工作表工作表工作表文件管理工作表工作表点击单元赋值当前单元录入计算机用户名点击单元赋值解除全部工作表保护点击工作表为指定工作表加指定密码保护表点击密码在有密码的工作表执行代码点击密码执行前需要验证密码的宏(控件按钮代码)点击密码拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式插入透明批注点击批注单元赋值定位定位定位定位定位定位点击单元赋值当前单元加2点击单元赋值单元赋值定位单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值事件事件事件事件其他其他定位打印单元赋值对象事件其他信息事件单元赋值单元赋值点击事件指定允许编辑区域点击编辑解除允许编辑区域限制点击编辑删除指定行点击行列操作删除A列为指定内容的行点击行列操作删除A列非数字单元行点击行列操作有条件删除当前行点击行列操作选择下一行点击定位选择第5行开始所有数据行点击定位选择光标或选区所在行点击定位定位名称点击名称选择到指定列的最后行点击定位将Sheet1的A列的非空值写到Sheet2的A列点击单元赋值将名称1的数据写到名称2点击名称定位格式对象点击数据单元赋值名称名称点击工作表按A列数据批量修改表名称点击工作表按A列数据批量创建新表(控件按钮代码)点击工作表清除剪贴板点击其他批量清除软回车点击其他判断指定文件是否已经打开点击事件当前文件另存到指定目录点击文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理引用指定位置单元内容为部分文件名另存文件点击文件管理将A列数据排序到D列点击单元赋值将指定范围的数据排列到D列点击单元赋值定位行列操作点击数据取消数据有效限制点击数据重排窗口点击窗口按当前单元文本选择打开指定文件单元点击定位回车光标向右点击定位回车光标向下点击定位保护工作表时取消选定锁定单元点击工作表文件管理行列操作工作表工作表工作表工作表工作表格式工作表工作表点击工作表工作表行列操作定位点击定位固定区域单元分类变色点击格式格式事件事件数据点击其他显示光标所在单元的批注的代码点击其他单元赋值事件事件事件事件点击单元赋值选择2至4行点击定位在当前选区有条件替换数值为文本点击事件自动筛选全部显示指定列点击筛选自动筛选第2列值为A的行点击筛选取消自动筛选()点击筛选全部显示指定表的自动筛选点击筛选强行合并单元点击格式格式单元赋值事件事件点击行列操作在A列产生不重复随机数点击单元赋值单元赋值单元赋值点击其他返回指定单元的行高和列宽点击信息指定行高和列宽点击格式指定单元的行高和列宽与A1单元相同点击格式填公式点击单元赋值工作表工作表单元赋值自定义函数信息超链接超链接超链接超链接查找和引用点击查找和引用返回表中各非空单元区域地址(行搜索)点击查找和引用查找和引用查找和引用查找和引用查找和引用查找和引用点击查找和引用返回A列非空单元数量点击查找和引用返回圆周率π点击其他定义指定单元内容为页眉/页脚点击打印提示并全部清除当前选择区域点击单元赋值全部清除当前选择区域点击单元赋值清除指定区域数值点击单元赋值对指定工作表执行取消隐藏》打印》隐藏工作表点击打印打开文件时执行指定宏(工作簿代码)点击事件关闭文件时执行指定宏(工作簿代码)点击事件信息事件点击工作表重算指定表点击工作表将第5行移到窗口的最上面点击窗口对第一张工作表的指定区域进行排序点击单元赋值显示指定工作表的打印预览点击打印用单元格A1的内容作为文件名另存当前工作簿点击文件管理[禁用/启用]保存和另存的代码点击文件管理在A和B列返回当前选区的名称和公式点击单元赋值朗读朗读A列,按ESC键中止点击语音朗读固定语句,请按ESC键终止点击语音在M和N列的14行以下选择单元时显示调用日历控件点击对象(工作表代码)添加自定义序列点击其他弹出打印对话框点击打印打印事件事件点击工作表把a列不重复值取到e列点击查找和引用查找和引用工作表点击事件事件其他点击其他按照当前行A列的图片名称插入图片到H列点击图片当前行下插入1行点击工作表取消指定行或列的隐藏点击工作表复制单元格所在行点击其他复制单元格所在列点击其他新建一个工作表点击工作表新建一个工作簿点击工作簿工作表事件工作簿点击工作簿合并A1至C1的内容写到D15单元的批注中点击批注自动重算点击其他手动重算点击其他EH帖子地址net/dispbbs.asp?boardid=4&id=239820。
宏命令
1.常用的宏命令1.1常用的宏命令1.释放技能命令/cast释放一个或多个技能,可以加入一些条件判断,是最常用的命令/castsequence依次释放释放数个技能,同样可以加入一些条件判断,常见于所谓的"无脑宏"/use使用一个物品,豹纹内衣可以直接用物品名称也可以用物品栏位置2.动作命令/cancelform取消变形/cancelaura/取消状态或增益/startattack开始攻击,一般写不写差别不大,释放技能会自动开始攻击的/stopattack停止攻击,与startattack相反,用于防止破除控制等功能,也不大会用到/target /targetenemy切换目标,用到的也不多,抓贼宏会用到,更多时候需要的反而是不切换目标的情况下对特定目标释放技能/mount召唤坐骑/dismount解散坐骑3.语言表情命令/1 /2 /3 /4在不同的频道里面说话,1综合,2交易,3本地防务,4寻求组队/s /y /p /ra /bg在不同的范围说话,s说,y喊,p小队,ra团队,bg战场/e做出一串表情,同时也可以/+内置表情4.特殊命令#showtooltip显示技能描述,可以指定技能名或是缺省,让你的界面更有可读性/focus指定某个目标为焦点目标/clearfocus清除焦点目标/stopmacro停止宏,可加入条件判断/console /script控制命令,抓贼宏会用到1.2常用的条件判断1.目标条件判断help noharm目标为友方harm nohelp目标为敌方exists目标存在dead nodead目标死亡/存活2.自身条件判断stance:1/2/3/4/5/6 form:1/2/3/4/5/6处在某形态中,对应为野性:1熊,2水栖,3豹,4旅行,5飞行平衡:1熊,2水栖,3豹,4旅行,5枭兽,6飞行恢复:1熊,2水栖,3豹,4旅行,5树,6飞行combat nocombat战斗中/非战斗中stealth nostealth潜行中,非潜行中mod:alt/shift/ctrl按下功能键alt/shift/ctrl,可缺省swimming noswimming游泳中/非游泳中flyable noflyable可飞行/不可飞行indoors outdoors室内/室外3.其他条件判断@ target=name/player/focus/targettarget/mouseover/raid#/party#/arena#选定目标指定名字/自己/焦点/目标的目标/鼠标指向/团队#号/小队#号/竞技场#号敌人reset=#/target/combat/shift/alt/ctrl用于/castsequence中,设定重置条件,可以是#秒/切换目标/进入战斗/按下shift/按下alt/按下ctrl1.3简单的宏知识1.宏内容宏可以取名和设置图标,如果设置为?图标的话就是自动选择宏技能的图标宏最长不超过255个字符,每个英文字母是一个字符,汉字是两个字符如果包含汉字且超过了255个字符但没超过255个字,在保存时是不会出现问题的,但是下线以后会丢失宏内容2.标点符号除去技能名之外所有的标点符号英文字母都是半角的技能名之间一般用";"间隔,而castsequence中队列里的技能名则用","间隔需要同时满足的条件由中括号"[]"包裹,","间隔3.技能名技能名必须正确,可以打开技能书shift+点击技能来获取技能名如果分辨率不够的话也许会导致技能书和宏菜单不能同时打开,可以尝试调节UI缩放2.实例2.1简单宏1.对特定目标释放技能#showtooltip/cast [@目标名,exists] []技能名此宏会对特定目标释放所定的技能,目标不存在的话就直接释放技能如果没有同名的那么系统会选择一个"某种程度上比较相近"的人同时也可以写player,raid#之类的,详见第一部分例:Code:#showtooltip/cast [@哀木涕,exists][]生命绽放2.喊话宏/频道喊话内容在指定频道喊话频道可以是:s(说)y(喊)1(综合)2(交易)3(本地防务)4(组队)p(小队)ra(团队)bg(战场)e(表情)例:Code:/1 FL10人便当1-3缺1T,9=1来的带装等成就MMM3.变形宏#showtooltip/cast !变形技能可以在人形态释放来变形,也可以在变形状态下重新变形来解减速等等例:Code:#showtooltip/cast !熊形态4.简单的循环#showtooltip/castsequence reset=条件1/条件2 技能1,技能2,技能3依次释放技能,技能名之间用","间隔条件可以是#(秒数)target(切换目标)combat(进入战斗)shift/alt/ctrl(按下shifit/alt/ctrl)例Code:#showtooltip/castsequence reset=6/combat 痛击,横扫,挫志咆哮,横扫4.双技能宏#showtooltip/cast [条件]技能1;技能2符合条件就释放技能1,否则就释放技能2技能名之间用";"间隔条件可以是自身条件也可以是目标条件可以用来节省空间,制作也极为简单例1:Code:#showtooltip/cast [stance:1]激怒;猛虎之怒例2:Code:#showtooltip/cast [harm]安抚;解除腐蚀5.使用物品宏#showtooltip/use 物品使用物品可以直接打物品名字也可以是物品位置编号编号对应:6(腰带)10(手套)13(饰品上)14(饰品下)15(披风)例:Code:showtooltip/use 6/e 绝尘而去6.取消buff宏/cancelaura 增益名取消buff用,例如取消保护,疾跑奔窜连放例:Code:#showtooltip/cancelaura 急奔/cast [stance:3]狂奔怒吼(猎豹形态);狂奔怒吼(熊形态)2.2进阶以上是各种最基本的宏,那么我们能不能将这些宏拓展开来呢?条件更复杂,技能数量更多,多种不同的语句糅杂在一起,那就可以实现更多的功能1.分支选择宏"对特定目标释放技能宏"可以实现目标的选择,那么能不能加入判断,使得不同条件下对不同的目标施放呢?[@player,mod:alt]按住alt的话对自己释放用了宏的话系统内置的自我施法按键(alt)就不好用了,所以很多技能都会加上这一个条件来人工实现这个功能[@mouseover,harm/help,exists]对鼠标指向的目标释放这是很多治疗喜爱的宏,可以免去不断切换目标的麻烦其中,harm和help则根据技能需要改动[@focus,mod:shift]按住shift则对焦点目标释放PvP非常常用且有用,shift也可以换成alt或是ctrl[@targettarget,harm/help,exists]对目标的目标释放这里需要注意的是这个harm和help所指的不是目标的属性,而是目标的目标的属性例如如果目标是boss,则对目标的目标施放治疗那么这里应该写的是help而不是harm,很多人都会觉得是:目标是harm的,所以转向目标的目标;这是不对的以上列举了几个常见的,你也可以自己试着写一写,"在某个条件下则以某人为目标"条件和目标的词汇则在第1部分里面有详细的介绍下面便可以把所有你认为会出现的条件写到一起了条件判断是从左到右的,也就是把你觉得应该先进行判断的条件写到左边#showtooltip/cast [@目标1,条件1] [@目标2,条件2] [@目标3,条件3] []技能最后的结果就是如果满足条件1,则对目标1释放,否则如果满足条件2,则对目标2释放,否则如果满足条件3,则对目标3释放这里建议最后加上一个空的中括号,来避免条件限制太死,有时候放不出技能的情况还有如果不写目标的话则默认为@target对当前目标,所以一般"@target"都省略掉了例:Code:#showtooltip/cast [@player,mod:alt][@mouseover,help,exists][help,exists][@targettarget,help,exists][]回春术2.复杂变形宏在"变形宏"上再加上各种条件判断,实现多种变形一键完成常用的条件有[swimming]水栖形态水里用水栖[flyable,nocombat]迅捷飞行形态飞行需要能飞且不战斗[outdoors,noflyable,nocombat]大型棕色科多兽不能飞那就只能坐骑了[outdoors,noflyable,combat]旅行形态要是还是战斗的话就旅行[indoors]猎豹形态室内就只能猎豹了然后我们直接把以上的全部加到一起,就得到了最终的宏Code:#showtooltip/cast [swimming]水栖形态;[flyable,nocombat]迅捷飞行形态;[outdoors,noflyable,nocombat]大型棕色科多兽;[outdoors,noflyable,combat]旅行形态;[indoors]猎豹形态事实上还有一个化简的问题例如说/cast [combat]猎豹形态;[nocombat]旅行形态后面那个nocombat需要吗?不需要因为判断从左至右进行,判断到第二个的时候就说明第一个没有通过了,那么combat没有通过必然是nocombat了但由于实际情况有很多条件并列,导致判断某个条件是否需要就比较复杂,有些人可能会绕不过来下面给出前面宏的化简结果Code:#showtooltip/cast [swimming]水栖形态;[flyable,nocombat]迅捷飞行形态;[outdoors,nocombat]大型棕色科多兽;[outdoors]旅行形态;猎豹形态当然,还可以加上"!"来防止连按又变回来,注意"!"放在技能名前面再给一个我自己用的变形宏,尝试下能不能看得懂Code:#showtooltip/cast [flyable,nocombat,nomod]!迅捷飞行形态;[form:4,nomod,outdoors][nomod.nocombat,outdoors][noform,outdoors]!旅行形态;[swimming,nomod]!水栖形态;[form:1,nomod]!巨熊形态;[form:3,nomod]!猎豹形态;[form:5,nomod][nomod,indoors]!生命之树/cancelform [form:6][mod]由于宏太长不得已把stance换成form了,效果一样3.简单循环中夹杂条件判断的宏下面我们再来给castsequence语句加点条件判断你也可以理解为把"简单循环宏"和"双技能宏"结合起来#showtooltip/castsequence [条件1] reset=重置条件A1/重置条件A2 循环A; reset=重置条件B1/重置条件B2 循环B循环之间用";"分隔而每个循环则写作技能1,技能2,技能3同一个循环里的不同技能用","分隔无脑宏什么的就不说了,这里举个野性冲锋的例子:Code:#showtooltip/castsequence [stance:3] reset=10 野性冲锋(猎豹形态),毁灭;野性冲锋(熊形态)作用就是释放对应形态的冲锋,猫跳后再按就是接免费毁灭这里的reset=10是因为免费毁灭buff持续10秒4.其他的一些命令/focus这条命令有3个作用1.没有焦点目标的时候将目标设置为焦点目标2.有焦点目标的时候将焦点目标更改成当前目标3.当前目标为空时清空焦点目标同时这条命令也是可以加条件判断的,如果不加判断的话非常容易误改了焦点不过判断中的@仅针对判断语句的对象,会被设为焦点的永远是当前目标同时配套的还有清空焦点目标/clearfocus这是一个最常见的焦点宏:没焦点就设焦点,按住alt强制设焦点,焦点死亡就清除焦点Code:/focus [mod:alt][@focus,noexists]/clearfocus [@focus,dead]这些命令还可以加进针对焦点目标的技能宏里例:Code:#showtooltip/focus [mod:alt][@focus,noexists]/clearfocus [@focus,dead]/cast [@focus,mod:shift,harm,exists][@mouseover,harm,exists][]旋风第一章宏命令的函数说明1.1什么是宏宏是一组命令的一个集合,通过单点触发多个动作按顺序执行。
Excel-259个常用宏
代码目录
链接 类别
1 打开全部隐藏工作表
点击
2 循环宏
点击
3 录制宏时调用“停止录制”工具栏
点击
4 高级筛选5列不重复数据至指定表
点击
5 双击单元执行宏(工作表代码)
点击
6 双击指定区域单元执行宏(工作表代码)
点击
7 进入单元执行宏(工作表代码)
点击
8 进入指定区域单元执行宏(工作表代码)
点击
9 在多个宏中依次循环执行一个(控件按钮代码)
点击
33 不连续区域录入当前日期
点击
34 不连续区域录入当前数字日期
点击
35 不连续区域录入当前日期和时间
点击
36 不连续区域录入对勾
点击
37 不连续区域录入当前文件名
点击
38 不连续区域添加文本
点击
39 不连续区域插入文本
点击
40 从指定位置向下同时录入多单元指定内容
点击
41 按aa工作表A列的内容排列工作表标签顺序
102 选择第5行开始所有数据行
103 选择光标或选区所在行
104 选择光标或选区所在列
105 光标定位到名称指定位置
106 选择名称定义的数据区
107 选择到指定列的最后行
108 将Sheet1的A列的非空值写到Sheet2的A列
109 将名称1的数据写到名称2
110 单元反选
111 调整选中对象中的文字
点击
52 为指定工作表加指定密码保护表
点击
53 在有密码的工作表执行代码
点击
54 执行前需要验证密码的宏(控件按钮代码)
点击
55 拷贝A1公式和格式到A2
EXCEL宏编辑命令
voko007259个常用宏-excelhome(1)2009-08-15 14:10:24目录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公式和格式到A257、复制单元数值58、插入数值条件格式59、插入透明批注60、添加文本61、光标定位到指定工作表A列最后数据行下一单元62、定位选定单元格式相同的全部单元格63、按当前单元文本定位64、按固定文本定位65、删除包含固定文本单元的行或列66、定位数据及区域以上的空值67、右侧单元自动加5(工作表代码)68、当前单元加269、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列为指定内容的行101、删除A列非数字单元行102、有条件删除当前行103、选择下一行104、选择第5行开始所有数据行105、选择光标或选区所在行106、选择光标或选区所在列107、光标定位到名称指定位置108、选择名称定义的数据区109、选择到指定列的最后行110、将Sheet1的A列的非空值写到Sheet2的A列111、将名称1的数据写到名称2112、单元反选113、调整选中对象中的文字114、去除指定范围内的对象115、更新透视表数据项116、将全部工作表名称写到A列117、为当前选定的多单元插入指定名称118、删除全部名称119、以指定区域为表目录补充新表120、按A列数据批量修改表名称121、按A列数据批量创建新表(控件按钮代码)122、清除剪贴板123、批量清除软回车124、判断指定文件是否已经打开125、当前文件另存到指定目录126、另存指定文件名127、以本工作表名称另存文件到当前目录128、将本工作表单独另存文件到Excel当前默认目录129、以活动工作表名称另存文件到Excel当前默认目录130、另存所有工作表为工作簿131、以指定单元内容为新文件名另存文件133、以当前日期和时间为新文件名另存文件134、另存本表为TXT文件135、引用指定位置单元内容为部分文件名另存文件136、将A列数据排序到D列137、将指定范围的数据排列到D列138、光标所在行上移一行139、加数据有效限制140、取消数据有效限制141、重排窗口143、回车光标向右144、回车光标向下146、保存并退出Excel147、隐藏/显示指定列空值行148、深度隐藏指定工作表149、隐藏指定工作表150、隐藏当前工作表151、返回当前工作表名称152、获取上一次所进入工作簿的工作表名称153、按光标选定颜色隐藏本列其他颜色行154、打开工作簿自动隐藏录入表以外的其他表155、除最左边工作表外深度隐藏所有表156、关闭文件时自动隐藏指定工作表(ThisWorkbook) 157、打开文件时提示指定工作表是保护状态(ThisWorkbook) 158、插入10行159、全选固定范围内小于0的单元160、全选选定范围内小于0的单元161、固定区域单元分类变色162、A列半角内容变红163、单元格录入数据时运行宏的代码164、根据B列最后数据快速合并A列单元格的控件代码165、在F1单元显示光标位置批注内容的代码166、显示光标所在单元的批注的代码167、使单元内容保持不变的工作表代码168、有条件执行宏169、有条件执行不同的宏170、提示确定或取消执行宏171、提示开始和结束172、拷贝指定表不相邻多列数据到新位置173、选择2至4行174、在当前选区有条件替换数值为文本175、自动筛选全部显示指定列176、自动筛选第2列值为A的行177、取消自动筛选()178、全部显示指定表的自动筛选179、强行合并单元180、设置单元区域格式181、在所有工作表的A1单元返回顺序号182、根据A1单元内容返回C1数值183、根据A1内容选择执行宏184、删除A列空行185、在A列产生不重复随机数186、将A列数据随机排列到F列187、取消选定区域的公式只保留值(假空转真空)188、处理导入的显示为科学计数法样式的身份证号189、返回指定单元的行高和列宽190、指定行高和列宽191、指定单元的行高和列宽与A1单元相同191、填公式192、建立当前工作表的副本为001表193、在第一个表前插入多工作表194、清除A列再插入序号195、反方向文本(自定义函数)196、指定选择单元区域弹出消息197、将B列数据添加超链接到K列198、删除B列数据的超链接199、分离临时表A列数据的文本和超链接并整理到数据库表200、分离临时表A列数据的文本和超链接并会同其他数据整理到数据库表201、返回A列最后一个非空单元行号202、返回表中第一个非空单元地址(行搜索)203、返回表中各非空单元区域地址(行搜索)204、返回第一个数值行号205、返回第1行最右边非空单元的列号206、返回连续数值单元的数量207、统计指定范围和内容的单元数量208、统计不同颜色的数字的和(自定义函数)209、返回非空单元数量210、返回A列非空单元数量211、返回圆周率π212、定义指定单元内容为页眉/页脚213、提示并全部清除当前选择区域214、全部清除当前选择区域215、清除指定区域数值216、对指定工作表执行取消隐藏》打印》隐藏工作表217、打开文件时执行指定宏(工作簿代码)218、关闭文件时执行指定宏(工作簿代码)219、弹出提示A1单元内容220、延时15秒执行重排窗口宏221、撤消工作表保护并取消密码222、重算指定表223、将第5行移到窗口的最上面224、对第一张工作表的指定区域进行排序225、显示指定工作表的打印预览226、用单元格A1的内容作为文件名另存当前工作簿227、[禁用/启用]保存和另存的代码228、在A和B列返回当前选区的名称和公式229、朗读朗读A列,按ESC键中止230、朗读固定语句,请按ESC键终止231、在M和N列的14行以下选择单元时显示调用日历控件(工作表代码)232、添加自定义序列233、弹出打印对话框234、返回总页码235、合并各工作表内容236、合并指定目录中所有文件中相同格式工作表的数据237、隐藏指定工作表的指定列238、把a列不重复值取到e列239、当前选区的行列数240、单元格录入1位字符就跳转(工作表代码)241、当指定日期(每月10日)打开文件执行宏242、提示并清空单元区域243、返回光标所在行号244、按照当前行A列的图片名称插入图片到H列245、当前行下插入1行246、取消指定行或列的隐藏247、复制单元格所在行248、复制单元格所在列249、新建一个工作表250、新建一个工作簿251、选择多表为工作组252、在当前工作组各表中分别执行指定宏253、复制当前工作簿的报表到临时工作簿254、删除指定文件255、合并A1至C1的内容写到D15单元的批注中256、自动重算257、手动重算1、打开全部隐藏工作表Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub2、循环宏Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647) For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" ThenExit For'如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For'如果某列出现"完成"内容则退出循环Next iEnd Sub3、录制宏时调用“停止录制”工具栏Sub 录制宏时调用停止录制工具栏()mandBars("Stop Recording").Visible = TrueEnd Sub4、高级筛选5列不重复数据至指定表Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _"A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub5、双击单元执行宏(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" ThenExit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd SelectEnd Sub6、双击指定区域单元执行宏(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub7、进入单元执行宏(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字()Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub8、进入指定区域单元执行宏(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call 打开隐藏表End Sub9、在多个宏中依次循环执行一个(控件按钮代码)Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd WithEnd Sub11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub12、根据A1单元文本隐藏/显示按钮(控件按钮代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub13、当前单元返回按钮名称(控件按钮代码)Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub14、当前单元内容返回到按钮名称(控件按钮代码)Private Sub CommandButton1_Click()CommandButton1.Caption = ActiveCellEnd Sub15、奇偶页分别打印Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub16、自动打印多工作表第一页Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub17、查找A列文本循环插入分页符Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页") 'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647) For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _.ActivateActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小() Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing Then Pic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub19、返回光标所在行数Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub20、在A1返回当前选中单元格数量Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub21、返回当前工作簿中工作表数量Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub22、返回光标选择区域的行数和列数Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub23、工作表中包含数据的最大行数Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub24、返回A列数据的最大行数Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub25、将所选区域文本插入新建文本框Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.V alue & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left + ActiveCell.Width, ActiveCell.Top + ActiveCell.Height, 250#, 100).SelectSelection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub26、批量插入地址批注Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Deleter.AddCommentment.Visible = Falsement.Text Text:="本单元格:" & r.Address & " of " & Selection.Address NextEnd IfEnd Sub27、批量插入统一批注Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=msgNextEnd IfEnd Sub28、以A1单元内容批量插入批注Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=[a1].TextNextEnd IfEnd Sub29、不连续区域插入当前文件名和表名及地址Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + + "]" + + "!" + mycell.AddressNextEnd Sub30、不连续区域录入当前单元地址Sub 区域录入当前单元地址()For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub31、连续区域录入当前单元地址Sub 连续区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteV alues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=FalseEnd Sub32、返回当前单元地址Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub33、不连续区域录入当前日期Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub34、不连续区域录入当前数字日期Sub 区域录入当前数字日期()Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub35、不连续区域录入当前日期和时间Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss") End Sub36、不连续区域录入对勾Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub37、不连续区域录入当前文件名Sub 批量录入当前文件名()Selection.FormulaR1C1 = End Sub38、不连续区域添加文本Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub39、不连续区域插入文本Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub40、从指定位置向下同时录入多单元指定内容Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr) End Sub41、按aa工作表A列的内容排列工作表标签顺序Sub 按aa工作表A列的内容排列工作表标签顺序() Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub42、以A1单元文本作表名插入工作表Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add = nmEnd Sub43、删除全部未选定工作表Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub44、工作表标签排序Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选'是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选'否[N]'", vbYesNoCancel, "工作表排序")If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub259个常用宏-excelhome(2)2009-08-15 14:11:4545、定义指定工作表标签颜色Sub 定义指定工作表标签颜色()Sheets("Sheet1").Tab.ColorIndex = 46End Sub46、在目录表建立本工作簿中各表链接目录Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1", ScreenTip:=Sheets(i).NameEnd IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub47、建立工作表文本目录Sub 建立工作表文本目录()Sheets.Add before:=Sheets(1)Sheets(1).Name = "目录"For i = 2 To Sheets.CountCells(i - 1, 1) = Sheets(i).Name'Sheets(1).Hyperlinks.Add Cells(i - 1, 1), "#" & Sheets(i).Name & "!A1" '添加超链接NextEnd Sub48、查另一文件的全部表名Sub 查另一文件的全部表名()On Error Resume NextDim i%Dim sh As WorksheetApplication.ScreenUpdating = FalseWorkbooks.Open Filename:=ThisWorkbook.Path & "\2.xls"Windows("1.xls").Activate '当前文件名称Sheets("Sheet1").Select '当前表名称i = 1 '将表名称返回到第1行For Each sh In Workbooks("2.xls").WorksheetsCells(i, 1) = '将表名称返回到第1列i = i + 1 '返回每个表名称向下移动1行Next shWindows("2.xls").Close '关闭对象文件Application.ScreenUpdating = TrueEnd Sub49、当前单元录入计算机名Sub 当前单元录入计算机名()Selection = Environ("COMPUTERNAME")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub50、当前单元录入计算机用户名Sub 当前单元录入计算机用户名()Selection = Environ("Username")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub51、解除全部工作表保护Sub 解除全部工作表保护()Dim n As IntegerFor n = 1 To Sheets.CountSheets(n).UnprotectNext nEnd Sub52、为指定工作表加指定密码保护表Sub 为指定工作表加指定密码保护表()Sheet10.Protect Password:="123"End Sub53、在有密码的工作表执行代码Sub 在有密码的工作表执行代码()Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123”打开工作表Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隐藏C列空值行Sheets("1").Protect Password:=123 '重新用密码保护工作表End Sub54、执行前需要验证密码的宏(控件按钮代码)Private Sub CommandButton1_Click()If InputBox("请输入密码:") <> "123" Then '密码是123MsgBox "密码错误,按确定退出!", 64, "提示"Exit SubEnd IfCells(1, 1) = 10End Sub55、执行前需要验证密码的宏()Sub 执行前需要验证密码的宏()If InputBox("请输入您的使用权限:", "系统提示") = 123 Then重排窗口'要执行的宏代码或宏名称ElseMsgBox "对不起,您没有使用该宏的权限,按确定键后退出!"End IfEnd Sub56、拷贝A1公式和格式到A2Sub 拷贝A1公式到A2()Workbooks("临时表").Sheets("表1").Range("A1").CopyWorkbooks("临时表").Sheets("表2").Range("A2").PasteSpecialEnd Sub57、复制单元数值Sub 复制数值()s = Workbooks("book1").Sheets("Sheet1").Range("A1:A2")Workbooks("book2").Sheets("Sheet1").Range("A1:A2") = sEnd Sub58、插入数值条件格式Sub 插入数值条件格式()Selection.FormatConditions.DeleteSelection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="70"Selection.FormatConditions(1).Interior.ColorIndex = 45Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="55"Selection.FormatConditions(2).Interior.ColorIndex = 39Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="60"Selection.FormatConditions(3).Interior.ColorIndex = 34End Sub59、插入透明批注Sub 插入透明批注()Selection.AddCommentment.Visible = FalseDim XS As WorksheetFor i = 1 To ments.Countments(i).Text "透明批注"ments(i).Shape.Fill.Visible = msoFalseNextEnd Sub60、添加文本Sub 添加文本()Selection = Selection + "×" '不可在数字后添加文本'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub61、光标定位到指定工作表A列最后数据行下一单元Sub 光标定位到指定工作表A列最后数据行下一单元()a = Sheets("数据库").[a65536].End(xlUp).RowSheets("数据库").SelectRange("A" & a + 1).SelectEnd Sub62、定位选定单元格式相同的全部单元格Sub 定位选定单元格式相同的全部单元格()Dim FirstCell As Range, FoundCell As RangeDim AllCells As RangeWith Application.FindFormat.Clear.NumberFormatLocal = Selection.NumberFormatLocal.HorizontalAlignment = Selection.HorizontalAlignment.VerticalAlignment = Selection.VerticalAlignment.WrapText = Selection.WrapText.Orientation = Selection.Orientation.AddIndent = Selection.AddIndent.IndentLevel = Selection.IndentLevel.ShrinkToFit = Selection.ShrinkToFit.MergeCells = Selection.MergeCells = .Font.FontStyle = Selection.Font.FontStyle.Font.Size = Selection.Font.Size.Font.Strikethrough = Selection.Font.Strikethrough.Font.Subscript = Selection.Font.Subscript.Font.Underline = Selection.Font.Underline.Font.ColorIndex = Selection.Font.ColorIndex.Interior.ColorIndex = Selection.Interior.ColorIndex.Interior.Pattern = Selection.Interior.Pattern.Locked = Selection.Locked.FormulaHidden = Selection.FormulaHiddenEnd WithSet FirstCell = edRange.Find(what:="", searchformat:=True)If FirstCell Is Nothing ThenExit SubEnd IfSet AllCells = FirstCellSet FoundCell = FirstCellDoSet FoundCell = edRange.Find(After:=FoundCell, what:="", searchformat:=True)If FoundCell Is Nothing Then Exit DoSet AllCells = Union(FoundCell, AllCells)If FoundCell.Address = FirstCell.Address Then Exit DoLoopAllCells.SelectEnd Sub63、按当前单元文本定位Sub 按当前单元文本定位()ABC = SelectionDim aa As RangeFor Each a In edRangeIf a Like ABC ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub64、按固定文本定位Sub 文本定位()Dim aa As RangeFor Each a In edRangeIf a Like "*合计*" ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub65、删除包含固定文本单元的行或列Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is Nothing End Sub66、定位数据及区域以上的空值Sub 定位数据及区域以上的空值()Dim aa As RangeFor Each a In edRangeIf a Like 〈0 ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub67、右侧单元自动加5(工作表代码)Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseTarget.Offset(0, 1) = Target + 5Application.EnableEvents = TrueEnd Sub68、当前单元加2Sub 当前单元加2()Selection = Selection + 2'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub69、A列等于A列减B列Sub A列等于A列减B列()For i = 1 To 23Cells(i, 1) = Cells(i, 1) - Cells(i, 2)NextEnd Sub70、用于光标选定多区域跳转指定单元(工作表代码)Private Sub Worksheet_SelectionChange(ByVal T As Range)a = Array([b6:b7], [e6], [h6])For i = 0 To 2If Not Application.Intersect(T, a(i)) Is Nothing Then[a1].Select: Exit ForEnd IfNextEnd Sub71、将A1单元录入的数据累加到B1单元(工作表代码)Private Sub Worksheet_Change(ByVal Target As Range)Dim t As LongIf Target.Address = "$A$1" Thent = Sheet1.Range("$B$1").ValueSheet1.Range("$B$1").Value = t + Target.ValueEnd IfEnd Sub72、在指定颜色区域选择单元时添加/取消"√"(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "") NextEnd Sub73、在指定区域选择单元时添加/取消"√"(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing Then For Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub74、双击指定单元,循环录入文本(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean) If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub75、双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub76、单元区域引用(工作表代码)Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub77、在指定区域选择单元时数值加1(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub259个常用宏-excelhome(3)2009-08-15 14:12:5878、混合文本的编号Sub 混合文本的编号()Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3, 100)) + 1) End Sub79、指定区域单元双击数据累加(工作表代码)。
EXCEL233个常用宏汇总.
代码目录链接类别登录打开全部隐藏工作表点击工作表循环宏点击宏管理录制宏时调用“停止录制”工具栏点击其他高级筛选5列不重复数据至指定表点击筛选在多个宏中依次循环执行一个(控件按钮代码点击宏管理在两个宏中依次循环执行一个并相应修改按钮名称点击宏管理(控件按钮代码在三个宏中依次循环执行一个并相应修改按钮名称点击宏管理(控件按钮代码根据A1单元文本隐藏/显示按钮(控件按钮代码点击控件当前单元返回按钮名称(控件按钮代码点击控件当前单元内容返回到按钮名称(控件按钮代码点击控件奇偶页分别打印点击打印自动打印多工作表第一页点击打印查找A列文本循环插入分页符点击打印将A列最后数据行以上的所有B列图片大小调整为所在点击对象单元大小返回光标所在行数点击查找和引用返回光标选择区域的行数和列数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用将所选区域文本插入新建文本框点击对象批量插入地址批注点击批注批量插入统一批注点击批注以A1单元内容批量插入批注点击批注以A1单元文本作表名插入工作表点击单元赋值批量插入当前文件名和表名及地址点击单元赋值区域录入当前单元地址点击单元赋值区域录入当前日期点击单元赋值区域录入当前数字日期点击单元赋值区域录入当前日期和时间点击单元赋值不连续区域录入对勾点击单元赋值不连续区域录入当前文件名点击单元赋值不连续区域添加文本点击单元赋值不连续区域插入文本点击单元赋值从指定位置向下同时录入多单元指定内容点击单元赋值按aa工作表A列的内容排列工作表标签顺序点击工作表删除全部未选定工作表点击工作表工作表标签排序点击工作表在目录表建立本工作簿中各表链接目录点击文件管理建立工作表文本目录点击工作表查另一文件的全部表名点击工作表当前单元录入计算机名点击单元赋值当前单元录入计算机用户名点击单元赋值解除全部工作表保护点击工作表为指定工作表加指定密码保护表点击密码在有密码的工作表执行代码点击密码执行前需要验证密码的宏(控件按钮代码点击密码拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式插入透明批注点击批注添加文本点击单元赋值光标定位到指定工作表A列最后数据行下一单元点击定位定位选定单元格式相同的全部单元格点击定位按当前单元文本定位点击定位按固定文本定位点击定位删除包含固定文本单元的行或列点击定位定位数据及区域以上的空值点击定位右侧单元自动加5(工作表代码点击单元赋值当前单元加2点击单元赋值A列等于A列减B列点击单元赋值用于光标选定多区域跳转指定单元(工作表代码点击定位将A1单元录入的数据累加到B1单元(工作表代码点击单元赋值点击单元赋值在指定颜色区域选择单元时添加/取消"√"(工作表代码在指定区域选择单元时添加/取消"√"(工作表代码点击单元赋值双击指定单元,循环录入文本(工作表代码点击单元赋值单元区域引用(工作表代码点击单元赋值在指定区域选择单元时数值加1(工作表代码点击单元赋值选择单元区域触发事件(工作表代码点击事件当修改指定单元内容时自动执行宏(工作表代码点击事件双击单元隐藏该行(工作表代码点击事件高亮显示行(工作表代码点击其他高亮显示行和列(工作表代码点击其他为指定工作表设置滚动范围(工作簿代码点击定位在指定单元记录打印次数(工作簿代码点击打印自动数字金额转大写(工作表代码点击单元赋值将全部工作表的A1单元作为单击按钮(工作簿代码点击对象闹钟——到指定时间执行宏(工作簿代码点击事件改变Excel界面标题的宏(工作簿代码点击其他在指定工作表的指定单元返回光标当前多选区地址点击信息(工作簿代码B列录入数据时在A列返回记录时间(工作表代码点击事件指定单元显示光标位置内容(工作表代码点击单元赋值每编辑一个单元保存文件点击事件指定允许编辑区域点击编辑解除允许编辑区域限制点击编辑删除A列为指定内容的行点击行列操作删除A列非数字单元行点击行列操作有条件删除当前行点击行列操作选择下一行点击定位选择第5行开始所有数据行点击定位选择光标或选区所在行点击定位选择光标或选区所在列点击定位光标定位到名称指定位置点击名称选择名称定义的数据区点击名称选择到指定列的最后行点击定位将Sheet1的A列的非空值写到Sheet2的A列点击单元赋值将名称1的数据写到名称2点击名称单元反选点击定位调整选中对象中的文字点击格式去除指定范围内的对象点击对象更新透视表数据项点击数据将全部工作表名称写到A列点击单元赋值为当前选定的多单元插入指定名称点击名称以指定区域为表目录补充新表点击工作表按A列数据批量修改表名称点击工作表按A列数据批量创建新表(控件按钮代码点击工作表清除剪贴板点击其他批量清除软回车点击其他当前文件另存到指定目录点击文件管理另存指定文件名点击文件管理以本工作表名称另存文件到当前目录点击文件管理将本工作表单独另存文件到Excel当前默认目录点击文件管理以活动工作表名称另存文件到Excel当前默认目录点击文件管理另存所有工作表为工作簿点击文件管理以指定单元内容为新文件名另存文件点击文件管理以当前日期为新文件名另存文件点击文件管理以当前日期和时间为新文件名另存文件点击文件管理另存本表为TXT文件点击文件管理引用指定位置单元内容为部分文件名另存文件点击文件管理将A列数据排序到D列点击单元赋值将指定范围的数据排列到D列点击单元赋值光标移动点击定位光标所在行上移一行点击行列操作加数据有效限制点击数据取消数据有效限制点击数据重排窗口点击窗口按当前单元文本选择打开指定文件单元点击定位回车光标向右点击定位回车光标向下点击定位保护工作表时取消选定锁定单元点击工作表保存并退出Excel点击文件管理隐藏/显示指定列空值行点击行列操作深度隐藏指定工作表点击工作表隐藏指定工作表点击工作表隐藏当前工作表点击工作表按光标选定颜色隐藏本列其他颜色行点击格式打开工作簿自动隐藏录入表以外的其他表点击工作表除最左边工作表外深度隐藏所有表点击工作表关闭文件时自动隐藏指定工作表(ThisWorkbook点击工作表打开文件时提示指定工作表是保护状态(ThisWorkbook点击工作表插入10行点击行列操作全选固定范围内小于0的单元点击定位全选选定范围内小于0的单元点击定位固定区域单元分类变色点击格式A列半角内容变红点击格式单元格录入数据时运行宏的代码点击事件焦点到A列时运行宏的代码点击事件根据B列最后数据快速合并A列单元格的控件代码点击数据在F1单元显示光标位置批注内容的代码点击其他显示光标所在单元的批注的代码点击其他使单元内容保持不变的工作表代码点击单元赋值有条件执行宏点击事件有条件执行不同的宏点击事件提示确定或取消执行宏点击事件提示开始和结束点击事件拷贝指定表不相邻多列数据到新位置点击单元赋值选择2至4行点击定位在当前选区有条件替换数值为文本点击事件自动筛选全部显示指定列点击筛选自动筛选第2列值为A的行点击筛选取消自动筛选(点击筛选全部显示指定表的自动筛选点击筛选强行合并单元点击格式指定A列的日期格式点击格式在所有工作表的A1单元返回顺序号点击单元赋值根据A1单元内容返回C1数值点击事件根据A1内容选择执行宏点击事件删除A列空行点击行列操作在A列产生不重复随机数点击单元赋值将A列数据随机排列到F列点击单元赋值取消选定区域的公式只保留值(假空转真空点击单元赋值处理导入的显示为科学计数法样式的身份证号点击其他返回指定单元的行高和列宽点击信息指定行高和列宽点击格式指定单元的行高和列宽与A1单元相同点击格式填公式点击单元赋值建立当前工作表的副本为001表点击工作表插入新表点击工作表在第一个表前插入多工作表点击工作表清除A列再插入序号点击单元赋值反方向文本(自定义函数点击自定义函数指定选择单元区域弹出消息点击信息将B列数据添加超链接到K列点击超链接删除B列数据的超链接点击超链接分离临时表A列数据的文本和超链接并整理到数据库表点击超链接分离临时表A列数据的文本和超链接并会同其他数据整点击超链接理到数据库表返回A列最后一个非空单元行号点击查找和引用返回表中第一个非空单元地址(行搜索点击查找和引用返回表中各非空单元区域地址(行搜索点击查找和引用返回第1行最右边非空单元的列号点击查找和引用统计指定范围和内容的单元数量点击查找和引用返回非空单元数量点击查找和引用返回A列非空单元数量点击查找和引用返回圆周率π点击其他定义指定单元内容为页眉/页脚点击打印提示并全部清除当前选择区域点击单元赋值全部清除当前选择区域点击单元赋值清除指定单元数值点击单元赋值对指定工作表执行取消隐藏》打印》隐藏工作表点击打印打开excel就执行某个宏点击事件弹出提示A1单元内容点击信息延时15秒执行重排窗口宏点击事件撤消工作表保护并取消密码点击工作表重算指定表点击工作表将第5行移到窗口的最上面点击窗口对第一张工作表的指定区域进行排序点击单元赋值显示指定工作表的打印预览点击打印用单元格A1的内容作为文件名另存当前工作簿点击文件管理[禁用/启用]保存和另存的代码点击文件管理在A和B列返回当前选区的名称和公式点击单元赋值朗读朗读A列,按ESC键中止点击语音朗读固定语句,请按ESC键终止点击语音在M和N列的14行以下选择单元时显示调用日历控件点击对象(工作表代码添加自定义序列点击其他弹出打印对话框点击打印返回总页码点击打印合并各工作表内容点击事件隐藏指定工作表的指定列点击工作表把a列不重复值取到e列点击查找和引用当前选区的行列数点击查找和引用单元格录入1位字符就跳转(工作表代码点击工作表当指定日期(每月10日打开文件执行宏点击事件提示并清空单元区域点击事件返回光标所在行号点击其他VBA返回公式结果点击其他按照当前行A列的图片名称插入图片到H列点击图片当前行下插入1行点击工作表取消指定行或列的隐藏复制单元格所在行复制单元格所在列新建一个工作表新建一个工作簿选择多表为工作组复制当前工作簿的报表到临时工作簿删除指定文件点击点击点击点击点击点击点击点击工作表其他其他工作表工作簿工作表工作簿工作簿登录。
excel宏程序编程100例
excel宏程序编程100例
很抱歉,我无法提供完整的100个例子。
但我可以给您提供几个经典的Excel宏编程示例:
1. 自动过滤数据:编写一个宏来自动过滤Excel表中的数据,
根据特定的条件筛选出符合条件的行。
2. 数据排序:编写一个宏来自动对Excel表中的数据按照特定
的列进行排序。
3. 数据合并:编写一个宏来自动合并多个Excel表格中的数据
到一个表格中。
4. 数据格式化:编写一个宏来格式化Excel表格中的数据,如
日期格式、货币格式等。
5. 数据透视表:编写一个宏来自动生成Excel表格中的数据透
视表。
6. 数据图表:编写一个宏来自动生成Excel表格中的数据图表,如柱状图、折线图等。
7. 数据验证:编写一个宏来添加数据验证规则,限制Excel表
格中的数据输入。
8. 数据计算:编写一个宏来进行Excel表格中的数据计算,如
求和、平均值等。
这些只是一些基本的例子,Excel宏编程的应用范围非常广泛,可以根据具体需求进行扩展和定制。
EXCEL常用的宏代码大全
EXCEL常用的宏代码大全EXCEL 常用的宏代码大全 - [9-免费电脑学习资料]2008-04-22Tag:excel 常用宏宏代码大全本示例为设置密码窗口 (1)If Application.InputBox("请输入密码:") = 1234 Then[A1] = 1 '密码正确时执行Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码End If本示例为设置密码窗口 (1)X = MsgBox("是否真的要结帐?", vbYesNo)If X = vbYes ThenClose本示例为设置工作表密码ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码'本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。
For Each w In WorkbooksIf <> Thenw.Close SaveChanges:=TrueEnd IfNext w'每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。
Application.WindowState = xlMaximized'本示例显示活动工作表的名称。
MsgBox "The name of the active sheet is " & '本示例保存当前活动工作簿的副本。
ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"'下述过程激活工作簿中的第四张工作表。
Sheets(4).Activate'下述过程激活工作簿中的第1张工作表。
157个常用宏(有代码可直接复制)
奇偶页分别打印点击自动打印多工作表第一页点击查找A列文本循环插入分页符(模块)点击将A列最后数据行以上的所有B列图片大小调整为所在点击单元大小返回光标所在行数点击在A1返回当前选中单元格数量点击返回当前工作簿中工作表数量点击返回光标选择区域的行数和列数点击工作表中包含数据的最大行数点击返回A列数据的最大行数点击将所选区域文本插入新建文本框点击批量插入地址批注点击批量插入统一批注点击以A1单元内容批量插入批注点击不连续区域插入当前文件名和表名及地址点击不连续区域录入当前单元地址点击连续区域录入当前单元地址点击返回当前单元地址点击不连续区域录入当前日期点击不连续区域录入当前数字日期点击不连续区域录入当前日期和时间点击不连续区域录入对勾点击不连续区域录入当前文件名点击不连续区域添加文本点击点击当前单元录入计算机用户名点击为指定工作表加指定密码保护表点击在有密码的工作表执行代码点击执行前需要验证密码的宏(控件按钮代码)点击拷贝A1公式和格式到A2点击插入数值条件格式点击点击当前单元加2点击A列等于A列减B列点击点击每编辑一个单元保存文件点击指定允许编辑区域点击解除允许编辑区域限制点击删除A列为指定内容的行点击删除A列非数字单元行点击有条件删除当前行点击选择第5行开始所有数据行点击选择光标或选区所在行点击选择到指定列的最后行点击将Sheet1的A列的非空值写到Sheet2的A列点击将全部工作表名称写到A列点击按A列数据批量创建新表(控件按钮代码)点击判断指定文件是否已经打开点击点击将指定范围的数据排列到D列点击光标移动点击光标所在行上移一行点击点击打开文件时提示指定工作表是保护状态点击(ThisWorkbook)全选固定范围内小于0的单元点击全选选定范围内小于0的单元点击固定区域单元分类变色点击点击显示光标所在单元的批注的代码点击提示确定或取消执行宏点击拷贝指定表不相邻多列数据到新位置点击在当前选区有条件替换数值为文本点击自动筛选第2列值为A的行点击取消自动筛选()点击全部显示指定表的自动筛选点击点击在A列产生不重复随机数点击将A列数据随机排列到F列点击取消选定区域的公式只保留值(假空转真空)点击填公式点击在第一个表前插入多工作表点击点击返回表中第一个非空单元地址(行搜索)点击返回表中各非空单元区域地址(行搜索)点击返回第一个数值行号点击返回第1行最右边非空单元的列号点击返回连续数值单元的数量点击统计指定范围和内容的单元数量点击统计不同颜色的数字的和(自定义函数)点击返回圆周率π点击定义指定单元内容为页眉/页脚点击提示并全部清除当前选择区域点击对指定工作表执行取消隐藏》打印》隐藏工作表点击弹出提示A1单元内容点击撤消工作表保护并取消密码点击将第5行移到窗口的最上面点击对第一张工作表的指定区域进行排序点击显示指定工作表的打印预览点击用单元格A1的内容作为文件名另存当前工作簿点击添加自定义序列点击弹出打印对话框点击点击把a列不重复值取到e列点击当前选区的行列数点击返回光标所在行号点击VBA返回公式结果点击合并A1至C1的内容写到D15单元的批注中点击重算模式点击分离字符串到每个单元格点击条件格式点击自动录入一个符号点击保护所有工作表点击判断正负数点击判断奇偶数点击选中变色点击自动输入当前日期点击高亮显示当前行点击按A列数据批量修改表名称点击光标指定到名称指定位置(模块)点击删除指定列含空格的所有行点击删除指定列所有重复行点击。
宏命令完全手册
宏命令完全手册一:基础教程1.什么是宏命令?一个宏可以完成一个相对比较复杂的命令.比如战斗中发布命令,如果打字当然不算麻烦,但在战斗中却很要命.浪费了时间和生命.一个简单的宏便可以用一个键来完成这一切.2.宏命令的设置流程:首先,回车,再敲/MACRO。
看见了吧?会弹出一个窗口,上面有New(新建宏命令)和Complete(完成宏命令)两个按键。
点New,又会弹出一个窗口,哇,花花绿绿的,里面包括了WOW几乎所有的技能图标,随你喜欢,随便选一个!它就是你设置的宏命令的图标了,给它取个名字吧!方便你用的时候好找。
然后回到第一个窗口,在它上面有一个输入菜单(别告诉我找不到…它可是占了这个窗口的一半多…)在里面输入特定的内容,然后点Complete。
接下来你要做的就是把这个代表你宏命令的图标用鼠标左键拉到快捷栏里,想怎么用就怎么用…3.下面就是怎样设置宏的内容了,简单的设置大家可以看我们网站上"基础"篇的宏介绍.相信很多人都知道WOW中的斜杠"/"和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比如:/Kneel是让你跪下来的动作而/say就是最基础的对话动作我们现在用一个宏把他们串起来:第一行内容:“/Kneel”第二行内容:“/say 如果你不嫁给我,那么我就一辈子不起来…” ”这样你的人物就会先下跪再说:"如果你不嫁给我,那么我就一辈子不起来…"宏可以应用所有WOW中已经定义了的斜杠"/"和表情命令,更要命的是,宏甚至可以应用人物的魔法和技能,只需要在宏的定义过程中应用"/cast"命令,下面是已知的一些常用命令:/Assist 这是个援助进攻的命令。
当你的队伍同时面对几个敌人时,只要点击自己的队友(一般是队伍中的战士),然后使用这个命令,你的目标就会变成战士所选中的目标。
大家集中火力消灭一个起!/Cast 这是个使用技能的命令。
excel259个常用宏
宏文件集▲打开全部隐藏工作表返回Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub▲循环宏返回Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则 'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环Next iEnd Sub▲录制宏时调用“停止录制”工具栏返回Sub 录制宏时调用停止录制工具栏()mandBars("Stop Recording").Visible = TrueEnd Sub▲高级筛选5列不重复数据至指定表返回Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _"A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub▲双击单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd SelectEnd Sub▲双击指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub▲进入单元执行宏(工作表代码)返回'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字()Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub▲进入指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call 打开隐藏表End Sub▲在多个宏中依次循环执行一个(控件按钮代码)返回Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub▲在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd WithEnd Sub▲在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"End IfEnd WithEnd Sub▲根据A1单元文本隐藏/显示按钮(控件按钮代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub▲当前单元返回按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub▲当前单元内容返回到按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()CommandButton1.Caption = ActiveCellEnd Sub▲奇偶页分别打印返回Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub▲自动打印多工作表第一页返回Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub▲查找A列文本循环插入分页符返回Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)Call 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _ .ActivateActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub▲将A列最后数据行以上的所有B列图片大小调整为所在单元大小返回Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小()Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing Then Pic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub▲返回光标所在行数返回Sub 返回光标所在行数()x = ActiveCell.RowEnd Sub▲在A1返回当前选中单元格数量返回Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub▲返回当前工作簿中工作表数量返回Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub▲返回光标选择区域的行数和列数返回Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub▲工作表中包含数据的最大行数返回Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub▲返回A列数据的最大行数返回Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd SubSub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left + ActiveCell.Width, ActiveCell.Top + ActiveCell.Selection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub▲批量插入地址批注返回Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Deleter.AddCommentment.Visible = Falsement.Text Text:="本单元格:" & r.Address & " of " & Selection.AddressNextEnd IfEnd Sub▲批量插入统一批注返回Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Visible = Falsement.Text Text:=msgNextEnd IfEnd Sub▲以A1单元内容批量插入批注返回Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=[a1].TextNextEnd IfEnd Sub▲不连续区域插入当前文件名和表名及地址返回Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + + "]" + + "!" + mycell.Address NextEnd Sub▲不连续区域录入当前单元地址返回Sub 区域录入当前单元地址()For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub▲连续区域录入当前单元地址返回Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub▲返回当前单元地址返回Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub▲不连续区域录入当前日期返回Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub▲不连续区域录入当前数字日期返回Sub 区域录入当前数字日期()Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub▲不连续区域录入当前日期和时间返回Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss")End Sub▲不连续区域录入对勾返回Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub▲不连续区域录入当前文件名返回Sub 批量录入当前文件名()Selection.FormulaR1C1 = End Sub▲不连续区域添加文本返回Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub▲不连续区域插入文本返回Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub▲从指定位置向下同时录入多单元指定内容返回Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr)End Sub▲按aa工作表A列的内容排列工作表标签顺序返回Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub▲以A1单元文本作表名插入工作表返回Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add = nmEnd Sub▲删除全部未选定工作表返回Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub▲工作表标签排序返回Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选 '是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选 '否[N]'", vbYesNoCancel, "工作表排序") If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub▲定义指定工作表标签颜色返回Sub 定义指定工作表标签颜色()Sheets("Sheet1").Tab.ColorIndex = 46End Sub▲在目录表建立本工作簿中各表链接目录返回Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1", ScreenTip:=Sheets(i).Name End IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub▲建立工作表文本目录返回Sub 建立工作表文本目录()Sheets.Add before:=Sheets(1)Sheets(1).Name = "目录"For i = 2 To Sheets.CountCells(i - 1, 1) = Sheets(i).Name'Sheets(1).Hyperlinks.Add Cells(i - 1, 1), "#" & Sheets(i).Name & "!A1" '添加超链接NextEnd Sub▲查另一文件的全部表名返回Sub 查另一文件的全部表名()On Error Resume NextDim i%Dim sh As WorksheetApplication.ScreenUpdating = FalseWorkbooks.Open Filename:=ThisWorkbook.Path & "\2.xls"Windows("1.xls").Activate '当前文件名称Sheets("Sheet1").Select '当前表名称i = 1 '将表名称返回到第1行For Each sh In Workbooks("2.xls").WorksheetsCells(i, 1) = '将表名称返回到第1列i = i + 1 '返回每个表名称向下移动1行Next shWindows("2.xls").Close '关闭对象文件Application.ScreenUpdating = TrueEnd Sub▲当前单元录入计算机名返回Sub 当前单元录入计算机名()Selection = Environ("COMPUTERNAME")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲当前单元录入计算机用户名返回 Sub 当前单元录入计算机用户名()Selection = Environ("Username")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲解除全部工作表保护返回Sub 解除全部工作表保护()Dim n As IntegerFor n = 1 To Sheets.CountSheets(n).UnprotectNext nEnd Sub▲为指定工作表加指定密码保护表返回Sub 为指定工作表加指定密码保护表()Sheet10.Protect Password:="123"End Sub▲在有密码的工作表执行代码返回Sub 在有密码的工作表执行代码()Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123” 打开工作表Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隐藏C列空值行Sheets("1").Protect Password:=123 '重新用密码保护工作表End Sub▲执行前需要验证密码的宏(控件按钮代码)返回Private Sub CommandButton1_Click()If InputBox("请输入密码:") <> "123" Then '密码是123MsgBox "密码错误,按确定退出!", 64, "提示"Exit SubEnd IfCells(1, 1) = 10End SubSub 执行前需要验证密码的宏()If InputBox("请输入您的使用权限:", "系统提示") = 123 Then重排窗口 '要执行的宏代码或宏名称ElseMsgBox "对不起,您没有使用该宏的权限,按确定键后退出!"End IfEnd Sub▲拷贝A1公式和格式到A2返回Sub 拷贝A1公式到A2()Workbooks("临时表").Sheets("表1").Range("A1").CopyWorkbooks("临时表").Sheets("表2").Range("A2").PasteSpecialEnd Sub▲复制单元数值返回Sub 复制数值()s = Workbooks("book1").Sheets("Sheet1").Range("A1:A2")Workbooks("book2").Sheets("Sheet1").Range("A1:A2") = sEnd Sub▲插入数值条件格式返回Sub 插入数值条件格式()Selection.FormatConditions.DeleteSelection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="70"Selection.FormatConditions(1).Interior.ColorIndex = 45Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _Formula1:="55"Selection.FormatConditions(2).Interior.ColorIndex = 39Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="60"Selection.FormatConditions(3).Interior.ColorIndex = 34End Sub▲插入透明批注返回Sub 插入透明批注()Selection.AddCommentment.Visible = FalseDim XS As WorksheetFor i = 1 To ments.Countments(i).Text "透明批注"ments(i).Shape.Fill.Visible = msoFalseNextEnd Sub▲添加文本返回Sub 添加文本()Selection = Selection + "×" '不可在数字后添加文本'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲光标定位到指定工作表A列最后数据行下一单元返回Sub 光标定位到指定工作表A列最后数据行下一单元()a = Sheets("数据库").[a65536].End(xlUp).RowSheets("数据库").SelectRange("A" & a + 1).SelectEnd Sub▲定位选定单元格式相同的全部单元格返回Sub 定位选定单元格式相同的全部单元格()Dim FirstCell As Range, FoundCell As RangeDim AllCells As RangeWith Application.FindFormat.Clear.NumberFormatLocal = Selection.NumberFormatLocal.HorizontalAlignment = Selection.HorizontalAlignment.VerticalAlignment = Selection.VerticalAlignment.WrapText = Selection.WrapText.Orientation = Selection.Orientation.AddIndent = Selection.AddIndent.IndentLevel = Selection.IndentLevel.ShrinkToFit = Selection.ShrinkToFit.MergeCells = Selection.MergeCells = .Font.FontStyle = Selection.Font.FontStyle.Font.Size = Selection.Font.Size.Font.Strikethrough = Selection.Font.Strikethrough.Font.Subscript = Selection.Font.Subscript.Font.Underline = Selection.Font.Underline.Font.ColorIndex = Selection.Font.ColorIndex.Interior.ColorIndex = Selection.Interior.ColorIndex.Interior.Pattern = Selection.Interior.Pattern.Locked = Selection.Locked.FormulaHidden = Selection.FormulaHiddenEnd WithSet FirstCell = edRange.Find(what:="", searchformat:=True)If FirstCell Is Nothing ThenExit SubEnd IfSet AllCells = FirstCellSet FoundCell = FirstCellDoSet FoundCell = edRange.Find(After:=FoundCell, what:="", searchformat:=True) If FoundCell Is Nothing Then Exit DoSet AllCells = Union(FoundCell, AllCells)If FoundCell.Address = FirstCell.Address Then Exit DoLoopAllCells.SelectEnd Sub▲按当前单元文本定位返回Sub 按当前单元文本定位()ABC = SelectionDim aa As RangeFor Each a In edRangeIf a Like ABC ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲按固定文本定位返回Sub 文本定位()Dim aa As RangeFor Each a In edRangeIf a Like "*合计*" ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲删除包含固定文本单元的行或列返回Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is NothingEnd Sub▲定位数据及区域以上的空值返回Sub 定位数据及区域以上的空值()Dim aa As RangeFor Each a In edRangeIf a Like 〈0 ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲右侧单元自动加5(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseTarget.Offset(0, 1) = Target + 5Application.EnableEvents = TrueEnd Sub▲当前单元加2返回Sub 当前单元加2()Selection = Selection + 2'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲A列等于A列减B列返回Sub A列等于A列减B列()For i = 1 To 23Cells(i, 1) = Cells(i, 1) - Cells(i, 2)NextEnd Sub▲用于光标选定多区域跳转指定单元(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)a = Array([b6:b7], [e6], [h6])For i = 0 To 2If Not Application.Intersect(T, a(i)) Is Nothing Then[a1].Select: Exit ForEnd IfNextEnd Sub▲将A1单元录入的数据累加到B1单元(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Dim t As LongIf Target.Address = "$A$1" Thent = Sheet1.Range("$B$1").ValueSheet1.Range("$B$1").Value = t + Target.ValueEnd IfEnd Sub▲在指定颜色区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "")NextEnd Sub▲在指定区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing ThenFor Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub▲双击指定单元,循环录入文本(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub▲单元区域引用(工作表代码)返回Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub▲在指定区域选择单元时数值加1(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub▲混合文本的编号返回Sub 混合文本的编号()Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3, 100)) + 1) End Sub▲指定区域单元双击数据累加(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Not Application.Intersect([A1:Y100], Target) Is Nothing Thenoldvalue = Val(Target.Value)inputvalue = InputBox("请输入数量,按ENTER键确认!", "数值累加器")Target.Value = oldvalue + inputvalueEnd IfEnd Sub▲选择单元区域触发事件(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Address = "$A$1:$B$2" ThenMsgBox "你选择了$A$1:$B$2单元"End IfEnd Sub▲当修改指定单元内容时自动执行宏(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [B3:B4]) Is Nothing Then重排窗口End IfEnd Sub▲被指定单元内容限制执行宏返回Sub 被指定单元限制执行宏()If Range("$A$1") = "关闭" Then Exit Sub窗口End Sub▲双击单元隐藏该行(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Rows(Target.Row).Hidden = TrueEnd Sub▲高亮显示行(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 2Rows("1:2").Interior.ColorIndex = 40 '保持1至2行的颜色推荐39,22,40,Rows(Target.Row).Interior.ColorIndex = 35 '高亮推荐颜色35,20,24,34,37,40,15End Sub▲高亮显示行和列(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = xlNoneRows(Target.Row).Interior.ColorIndex = 34Columns(Target.Column).Interior.ColorIndex = 34End Sub▲为指定工作表设置滚动范围(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)Sheet1.ScrollArea = "A1:M30"End Sub▲在指定单元记录打印和预览次数(工作簿代码)返回Private Sub Workbook_BeforePrint(Cancel As Boolean)Range("A1") = 1 + Range("A1")End Sub▲自动数字金额转大写(工作表代码)返回Private Sub Worksheet_Change(ByVal M As Range)On Error Resume Nexty = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 1, "零", "")))c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")M = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))End Sub▲将全部工作表的A1单元作为单击按钮(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)If Target.Address = "$A$1" ThenCall 宏名End IfEnd Sub▲闹钟——到指定时间执行宏(工作簿代码)返回Private Sub Workbook_Open()Application.OnTime ("11:45:00"), "提示1" '宏名字Application.OnTime ("12:00:00"), "提示2" '宏名字End Sub▲改变Excel界面标题的宏(工作簿代码)返回Private Sub Workbook_Open()Application.Caption = "春节快乐"End Sub▲在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Worksheets("表2").Range("A1") = Target.Address(0, 0)End Sub▲B列录入数据时在A列返回记录时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 ThenTarget.Offset(, -1) = NowEnd IfEnd Sub▲当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = DateTarget.Offset(, 2) = TimeEnd IfEnd IfEnd SubPublic Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = Format(Now(), "yyyy-mm-dd")Target.Offset(, 2) = Format(Now(), "h:mm:ss")End IfEnd IfEnd Sub▲指定单元显示光标位置内容(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)Sheets(1).Range("A1") = SelectionEnd Sub▲每编辑一个单元保存文件返回Private Sub Worksheet_Change(ByVal Target As Range)ThisWorkbook.SaveEnd Sub▲指定允许编辑区域返回Sub 指定允许编辑区域()ActiveSheet.ScrollArea = "B8:G15"End Sub▲解除允许编辑区域限制返回Sub 解除允许编辑区域限制()ActiveSheet.ScrollArea = ""End Sub▲删除指定行返回Sub 删除指定行()Workbooks("临时表").Sheets("表2").Range("5:5").DeleteEnd Sub▲删除A列为指定内容的行返回Sub 删除A列为指定内容的行()Dim a, b As Integera = Sheet1.[a65536].End(xlUp).RowFor b = a To 2 Step -1If Cells(b, 1).Value = "删除" ThenRows(b).DeleteEnd IfNextEnd Sub▲删除A列非数字单元行返回Sub 删除A列非数字单元行()i = [a65536].End(xlUp).RowRange("A1:A" & i).SpecialCells(xlCellTypeConstants, 2).EntireRow.DeleteEnd Sub▲有条件删除当前行返回Sub 有条件删除当前行()If [A1] = 2 Or [B1] = "删除" ThenSelection.Delete Shift:=xlUpEnd IfEnd Sub▲选择下一行返回Sub 选择下一行()ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.SelectEnd Sub▲选择第5行开始所有数据行返回Sub 选择第5行开始所有数据行A()Dim i%i = Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).EntireRow.RowRows("5:" & i).SelectEnd SubSub 选择第5行开始所有数据行B()Rows("5:" & Cells.Find("*", , , , 1, 2).Row).SelectEnd Sub▲选择光标或选区所在行返回Sub 选择光标或选区所在行()Selection.EntireRow.SelectEnd Sub▲选择光标或选区所在列返回Sub 选择光标或选区所在列()Selection.EntireColumn.SelectEnd Sub▲光标定位到名称指定位置返回Sub 定位()Application.Goto Range(Evaluate("名称"))End Sub▲选择名称定义的数据区返回Sub 选择名称定义的数据区()[数据区].Select '插入名称要使用INDIRECT函数'Range("数据区").Select 或者'Sheet1.Range("数据区").Select 或者End Sub▲选择到指定列的最后行返回Sub 选择到指定列的最后行()Range("C4:G" & [G65536].End(xlUp).Row).SelectEnd Sub▲将Sheet1的A列的非空值写到Sheet2的A列返回Sub 将Sheet1的A列的非空值写到Sheet2的A列()Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1]End Sub▲将名称1的数据写到名称2返回Sub Macro2()Range("位置2") = Range("位置1").ValueEnd Sub▲单元反选返回Sub 单元反选()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim raddress As String, taddress As Stringraddress = Selection.Addresstaddress = edRange.AddressWith Sheets.Add.Range(taddress) = 0.Range(raddress) = "=0"raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address.DeleteEnd WithActiveSheet.Range(raddress).SelectApplication.ScreenUpdating = TrueEnd Sub▲调整选中对象中的文字返回Sub 调整选中对象中的文字()'文字居中、自动调整大小With Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenter.ReadingOrder = xlContext.Orientation = xlHorizontal.AutoSize = True.AddIndent = FalseEnd WithEnd Sub▲去除指定范围内的对象返回Sub 去除指定范围内的对象()Dim p As ShapeSet My = Worksheets("工作表名")For Each p In My.ShapesIf Not Application.Intersect(p.TopLeftCell, Range("范围")) Is Nothing Then p.Delete NextEnd Sub▲更新透视表数据项返回Sub DeleteMissingItems2002All()'防止数据透视表中显示无用的数据项'在 Excel 2002 或更高版本中'如果无用的数据项已经存在,'运行这个宏可以更新Dim pt As PivotTableDim ws As WorksheetFor Each ws In ActiveWorkbook.WorksheetsFor Each pt In ws.PivotTablespt.PivotCache.MissingItemsLimit = xlMissingItemsNoneNext ptNext wsEnd Sub▲将全部工作表名称写到A列返回Sub 将全部表名称写到A列()k = 1For Each Sht In SheetsCells(k + 1, 1) = '指定写入的行和列。
excel常用宏集合
65:删除包含固定文本单元的行或列Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is NothingEnd Sub72:在指定颜色区域选择单元时添加/取消"√"(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "") NextEnd Sub73:在指定区域选择单元时添加/取消"√"(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing Then For Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub74:双击指定单元,循环录入文本(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub75:双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub76:单元区域引用(工作表代码)Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub77:在指定区域选择单元时数值加1(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub259个常用宏-excelhome(3)2009-08-15 14:12:5878:混合文本的编号Sub 混合文本的编号()Worksheets(1).Range("B2").Value = "" & (--(Mid(Worksheets(1).Range("B2"), 3, 100)) + 1)79:指定区域单元双击数据累加(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Application.Intersect([A1:Y100], Target) Is Nothing Thenoldvalue = Val(Target.Value)inputvalue = InputBox("请输入数量,按ENTER键确认!", "数值累加器")Target.Value = oldvalue + inputvalueEnd IfEnd Sub80:选择单元区域触发事件(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Address = "$A$1:$B$2" ThenMsgBox "你选择了$A$1:$B$2单元"End IfEnd Sub81:当修改指定单元容时自动执行宏(工作表代码)Private Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [B3:B4]) Is Nothing Then重排窗口End IfEnd Sub82:被指定单元容限制执行宏Sub 被指定单元限制执行宏()If Range("$A$1") = "关闭" Then Exit Sub窗口End Sub83:双击单元隐藏该行(工作表代码)Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Rows(Target.Row).Hidden = True84:高亮显示行(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 2Rows("1:2").Interior.ColorIndex = 40 '保持1至2行的颜色推荐39,22,40,Rows(Target.Row).Interior.ColorIndex = 35 '高亮推荐颜色35,20,24,34,37,40,15 End Sub85:高亮显示行和列(工作表代码)Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = xlNoneRows(Target.Row).Interior.ColorIndex = 34Columns(Target.Column).Interior.ColorIndex = 34End Sub86:为指定工作表设置滚动围(工作簿代码)Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Sheet1.ScrollArea = "A1:M30"End Sub87:在指定单元记录打印和预览次数(工作簿代码)Private Sub Workbook_BeforePrint(Cancel As Boolean)Range("A1") = 1 + Range("A1")End Sub88:自动数字金额转大写(工作表代码)Private Sub Worksheet_Change(ByVal M As Range)On Error Resume Nexty = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 1, "c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")M = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))End Sub89:将所有工作表的A1单元作为单击按钮(工作簿代码)Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" ThenCall 宏名End IfEnd Sub90:闹钟——到指定时间执行宏(工作簿代码)Private Sub Workbook_Open()Application.OnTime ("11:45:00"), "提示1" '宏名字Application.OnTime ("12:00:00"), "提示2" '宏名字End Sub91:改变Excel界面标题的宏(工作簿代码)Private Sub Workbook_Open()Application.Caption = "春节快乐"End Sub92:在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Worksheets("表2").Range("A1") = Target.Address(0, 0)End Sub93:B列录入数据时在A列返回记录时间(工作表代码)Public Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 ThenTarget.Offset(, -1) = NowEnd IfEnd Sub94:当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)Public Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = DateTarget.Offset(, 2) = TimeEnd IfEnd IfEnd SubPublic Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = Format(Now(), "yyyy-mm-dd")Target.Offset(, 2) = Format(Now(), "h:mm:ss")End IfEnd IfEnd Sub95:指定单元显示光标位置容(工作表代码)Private Sub Worksheet_SelectionChange(ByVal T As Range)Sheets(1).Range("A1") = SelectionEnd Sub96:每编辑一个单元保存文件Private Sub Worksheet_Change(ByVal Target As Range)ThisWorkbook.SaveEnd Sub97:指定允许编辑区域Sub 指定允许编辑区域()ActiveSheet.ScrollArea = "B8:G15"End Sub98:解除允许编辑区域限制Sub 解除允许编辑区域限制()ActiveSheet.ScrollArea = ""End Sub99:删除指定行Sub 删除指定行()Workbooks("临时表").Sheets("表2").Range("5:5").DeleteEnd Sub100:删除A列为指定容的行Sub 删除A列为指定容的行()Dim a, b As Integera = Sheet1.[a65536].End(xlUp).RowFor b = a To 2 Step -1If Cells(b, 1).Value = "删除" ThenRows(b).DeleteEnd IfNextEnd Sub101:删除A列非数字单元行Sub 删除A列非数字单元行()i = [a65536].End(xlUp).RowRange("A1:A" & i).SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete End Sub102:有条件删除当前行Sub 有条件删除当前行()If [A1] = 2 Or [B1] = "删除" ThenSelection.Delete Shift:=xlUpEnd IfEnd Sub103:选择下一行Sub 选择下一行()ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.SelectEnd Sub104:选择第5行开始所有数据行Sub 选择第5行开始所有数据行A()Dim i%i = Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).EntireRow.RowRows("5:" & i).SelectEnd SubSub 选择第5行开始所有数据行B()Rows("5:" & Cells.Find("*", , , , 1, 2).Row).SelectEnd Sub105:选择光标或选区所在行Sub 选择光标或选区所在行()Selection.EntireRow.SelectEnd Sub106:选择光标或选区所在列Sub 选择光标或选区所在列()Selection.EntireColumn.SelectEnd Sub107:光标定位到名称指定位置Sub 定位()Application.Goto Range(Evaluate("名称"))End Sub108:选择名称定义的数据区Sub 选择名称定义的数据区()[数据区].Select '插入名称要使用INDIRECT函数'Range("数据区").Select 或者'Sheet1.Range("数据区").Select 或者End Sub109:选择到指定列的最后行Sub 选择到指定列的最后行()Range("C4:G" & [G65536].End(xlUp).Row).SelectEnd Sub110:将Sheet1的A列的非空值写到Sheet2的A列Sub 将Sheet1的A列的非空值写到Sheet2的A列()Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1] End Sub111:将名称1的数据写到名称2Sub Macro2()Range("位置2") = Range("位置1").ValueEnd Sub112:单元反选Sub 单元反选()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim raddress As String, taddress As Stringraddress = Selection.Addresstaddress = edRange.AddressWith Sheets.Add.Range(taddress) = 0.Range(raddress) = "=0"raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address.DeleteEnd WithActiveSheet.Range(raddress).SelectApplication.ScreenUpdating = TrueEnd Sub113:调整选中对象中的文字Sub 调整选中对象中的文字()'文字居中:自动调整大小With Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenter.ReadingOrder = xlContext.Orientation = xlHorizontal.AutoSize = True.AddIndent = FalseEnd WithEnd Sub114:去除指定围的对象Sub 去除指定围的对象()Dim p As ShapeSet My = Worksheets("工作表名")For Each p In My.ShapesIf Not Application.Intersect(p.TopLeftCell, Range("围")) Is Nothing Then p.Delete NextEnd Sub115:更新透视表数据项Sub DeleteMissingItems2002All()'防止数据透视表中显示无用的数据项'在Excel 2002 或更高版本中'假如无用的数据项已经存在,'运行这个宏可以更新Dim pt As PivotTableDim ws As WorksheetFor Each ws In ActiveWorkbook.WorksheetsFor Each pt In ws.PivotTablespt.PivotCache.MissingItemsLimit = xlMissingItemsNoneNext ptNext wsEnd Sub116:将所有工作表名称写到A列Sub 将所有表名称写到A列()k = 1For Each Sht In SheetsCells(k + 1, 1) = '指定写入的行和列k = k + 1NextEnd Sub117:为当前选定的多单元插入指定名称Sub 为当前选定的多单元插入指定名称() = "临时"s.Add Name:="临时", RefersTo:=Selection '或者换用这行代码也可以End Sub118:删除所有名称Sub 删除所有名称()On Error Resume NextDim l As Integerl = s.CountFor i = l To 1 Step -1s(i).DeleteNextEnd Sub119:以指定区域为表目录补充新表Sub 以指定区域为表目录补充新表()Dim dic As Object, sh As WorksheetDim arr, itemarr = Range("B1:BB1")Set dic = CreateObject("scripting.dictionary")For Each sh In ThisWorkbook.Worksheetsdic.Add , ""NextFor Each item In arrIf item <> "" And Not dic.exists(Trim(item)) Then With ThisWorkbook.Worksheets.Add.Name = itemEnd WithEnd IfNextSet dic = NothingEnd Sub120:按A列数据批量修改表名称Sub 按A列数据批量修改表名称()Dim i%For i = 1 To Sheets.Count - 1Sheets(i).Name = Cells(i + 1, 1).TextNextEnd Sub121:按A列数据批量创建新表(控件按钮代码)Private Sub CommandButton1_Click()On Error Resume NextDim i%, j%For i = 1 To [a65536].End(xlUp).RowFor j = 2 To Sheets.CountIf Cells(i, 1) = Sheets(j).Name ThenExit ForEnd IfNextSheets.Add(after:=Sheets(Sheets.Count)).Name = Cells(i, 1) NextEnd Sub122:清除剪贴板Sub 清除剪贴板()Application.CutCopyMode = FalsemandBars("Task Pane").Visible = False End Sub123:批量清除软回车Sub 批量清除软回车()'也可直接使用Alt+10或13替换Cells.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, SearchOrder:= _ xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=FalseEnd Sub124:判断指定文件是否已经打开Sub 判断指定文件是否已经打开()Dim x As IntegerFor x = 1 To Workbooks.CountIf Workbooks(x).Name = "函数.xls" Then '文件名称MsgBox "文件已打开"Exit SubEnd IfNextMsgBox "文件未打开"End Sub125:当前文件另存到指定目录Sub 当前激活文件另存到指定目录()ActiveWorkbook.SaveAs Filename:="E:\信件\" & End Sub126:另存指定文件名Sub 另存指定文件名()ActiveWorkbook.SaveAs ThisWorkbook.Path & "\别名.xls"End Sub127:以本工作表名称另存文件到当前目录Sub 以本工作表名称另存文件到当前目录()ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & & ".xls" End Sub128:将本工作表单独另存文件到Excel当前默认目录Sub 将本工作表单独另存文件到Excel当前默认目录()ActiveSheet.CopyActiveWorkbook.SaveAs Filename:= & ".xls"End Sub129:以活动工作表名称另存文件到Excel当前默认目录Sub 以活动工作表名称另存文件到Excel当前默认目录()ActiveWorkbook.SaveAs Filename:= & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _, CreateBackup:=FalseEnd Sub130:另存所有工作表为工作簿Sub 另存所有工作表为工作簿()Dim sht As WorksheetApplication.ScreenUpdating = Falseipath = ThisWorkbook.Path & "\"For Each sht In Sheetssht.CopyActiveWorkbook.SaveAs ipath & & ".xls" '(工作表名称为文件名)'ActiveWorkbook.SaveAs ipath & & Trim(sht.[d15]) & ".xls" '(文件名称& D15单元容)'ActiveWorkbook.SaveAs ipath & Trim(sht.[d15]) & ".xls" '(文件名称为D15单元容)ActiveWorkbook.CloseNextApplication.ScreenUpdating = TrueEnd Sub131:以指定单元容为新文件名另存文件Sub 以指定单元容为新文件名另存文件()ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Sheet1.[A1]End Sub132:以当前日期为新文件名另存文件Sub 以当前日期为新文件名另存文件()ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now(), "yyyymmdd") & ".xls" End SubSub 以当前日期为名称另存文件()ActiveWorkbook.SaveAs Filename:=Date & ".xls"End Sub133:以当前日期和时间为新文件名另存文件Sub 以当前日期和时间为新文件名另存文件()ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now(), "yyyy" & "年" & "mm" & "月" & "dd" & "日" & "h" & "时" & "mm" & "分" & "ss" & "秒") & ".xls"End Sub134:另存本表为TXT文件Sub 另存本表为TXT文件()Dim s As StringDim FullName As String, rng As RangeApplication.ScreenUpdating = FalseFullName = ( & ".txt") '以当前表名为TXT文件名' FullName = Replace(ThisWorkbook.FullName, ".xls", ".txt") '以当前文件名为TXT文件名' FullName = Replace(ThisWorkbook.FullName, ".xls", & ".txt") '以文件名&表名为TXT文件名Open FullName For Output As #1 '以读写方式打开文件,每次写容都会覆盖原先的容'参考帮助,fullname为文件全名For Each rng In Range("a1").CurrentRegions = s & IIf(s = "", "", "|") & rng.ValueIf rng.Column = Range("a1").CurrentRegion.Columns.Count ThenPrint #1, s & "|" '把数据写到文本文件里s = ""End IfNextClose #1 '关闭文件Application.ScreenUpdating = TrueMsgBox "数据已导入文本"End Sub135:引用指定位置单元容为部分文件名另存文件Sub 引用指定位置单元容为部分文件名另存文件()ActiveWorkbook.SaveAs Filename:="E:\信件\" & "解答" & Range("sheet1!a1") & "郎雀.xls" End Sub136:将A列数据排序到D列Sub 将A列数据排序到D列()[d:d] = [a:a].Value[d:d].Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlYesEnd Sub137:将指定围的数据排列到D列Sub 将指定围的数据排列到D列()Dim arr1, arr2, i%, xarr1 = Range("A1:C3")ReDim arr2(1 To UBound(arr1, 1) * UBound(arr1, 2), 1 To 1)For Each x In Application.Transpose(arr1)i = i + 1arr2(i, 1) = xNext xRange("D1").Resize(i, 1) = arr2End Sub光标移动Sub 光标移动()ActiveCell.Offset(1, 2).Select '向下移动1行,向右移动2列End Sub138:光标所在行上移一行Sub 光标所在行上移一行()Dim i%i = Split(ActiveCell.Address, "$")(2)If i > 1 ThenRows(i).CutRows(i - 1).Insert Shift:=xlDownEnd IfEnd Sub139:加数据有效限制Sub 加数据有效限制()With Selection.Validation.Delete.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _xlBetween, Formula1:="bigsun010sina.".IgnoreBlank = False.InCellDropdown = False.InputTitle = "".ErrorTitle = "".InputMessage = "".ErrorMessage = "要奋斗就会有牺牲,死人的事是经常发生的。
105个常用宏
奇偶页分别打印点击自动打印多工作表第一页点击查找A列文本循环插入分页符(模块)点击将A列最后数据行以上的所有B列图片大小调整为所在点击单元大小将所选区域文本插入新建文本框点击批量插入地址批注点击批量插入统一批注点击不连续区域插入当前文件名和表名及地址点击不连续区域录入当前单元地址点击连续区域录入当前单元地址点击返回当前单元地址点击不连续区域录入当前日期点击不连续区域录入当前数字日期点击不连续区域录入当前文件名点击点击执行前需要验证密码的宏(控件按钮代码)点击点击点击指定允许编辑区域点击解除允许编辑区域限制点击删除A列为指定内容的行点击删除A列非数字单元行点击有条件删除当前行点击将Sheet1的A列的非空值写到Sheet2的A列点击将全部工作表名称写到A列点击按A列数据批量创建新表(控件按钮代码)点击点击将指定范围的数据排列到D列点击点击打开文件时提示指定工作表是保护状态(ThisWorkbook)点击全选固定范围内小于0的单元点击全选选定范围内小于0的单元点击固定区域单元分类变色点击点击显示光标所在单元的批注的代码点击提示确定或取消执行宏点击拷贝指定表不相邻多列数据到新位置点击自动筛选第2列值为A的行点击取消自动筛选()点击全部显示指定表的自动筛选点击在所有工作表的A1单元返回顺序号点击在A列产生不重复随机数点击将A列数据随机排列到F列点击取消选定区域的公式只保留值(假空转真空)点击在第一个表前插入多工作表点击点击返回表中第一个非空单元地址(行搜索)点击返回表中各非空单元区域地址(行搜索)点击返回第一个数值行号点击返回第1行最右边非空单元的列号点击统计不同颜色的数字的和(自定义函数)点击提示并全部清除当前选择区域点击弹出提示A1单元内容点击点击把a列不重复值取到e列点击合并A1至C1的内容写到D15单元的批注中点击分离字符串到每个单元格点击条件格式点击保护所有工作表点击判断正负数点击判断奇偶数点击选中变色点击自动输入当前日期点击高亮显示当前行点击按A列数据批量修改表名称点击光标指定到名称指定位置(模块)点击删除指定列含空格的所有行点击删除指定列所有重复行点击反方向文本(模块)点击输入指定长度字符后自动跳转点击修改工作表后在指定位置显示修改记录点击。
VBA程序开发--259个常用宏
[VBA程序开发]★259个常用宏★(7月11日更新)[复制链接]
本人不懂代码,平时使用的宏是通过录制修改或论坛下载得到的,现将搜集整理的常用宏代码发到论坛与朋友们分享。
文件中一定存在错误和不足,希望大家审阅提出,我会随时纠正、补充和改善。
在此感谢各位朋友!
sRSpQWz1.zip(107.5 KB, 下载次数: 43307)
2007年7月11日更新
注:文件中有个文本框,是为了文件中的代码与表格中的相互复制数据方便所设。
说明:
如果你以前未曾使用过宏,需要操作:工具》选项》安全性》宏安全性》勾选“中”或“低”》退出Excel后再重新进入。
录制宏的过程:工具》宏》录制新宏》指定保存在当前工作簿》指定新宏的名称》开始录制》做你要做的系列工作》工具》宏》停止录制》做个按钮或图片》鼠标右键点它》指定宏》指定刚录制好的宏》以后要做上述系列工作点按钮即可
复制使用宏:打开你的工作簿》按Alt+F11进入VBA》在工程资源管理器窗口单击鼠标右键,选择插入—“模块”》代码粘贴到模块中》退出VBA》工具》宏》(使用宏:)选择这个宏》执行(或者插入按钮或图片,鼠标右击选择链接宏)
其他:附件中还包括所谓“工作簿代码”和“工作表代码”,是要鼠标右选工作簿名和工作表标签》查看代码》复制代码到其中,就可以使用了。
请参考山菊花超级版主的重要论述:
[此贴子已经被作者于2008-7-25 11:11:53编辑过] [本帖最后由 LangQueS 于 2009-8-5 21:09 编辑]。
宏代码齐全
宏文件集▲打开全部隐藏工作表返回Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub▲循环宏返回Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则 'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环Next iEnd Sub▲高级筛选5列不重复数据至指定表返回Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _"A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub▲在多个宏中依次循环执行一个(控件按钮代码)返回Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub▲在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd WithEnd Sub▲在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub▲根据A1单元文本隐藏/显示按钮(控件按钮代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub▲奇偶页分别打印返回Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub▲自动打印多工作表第一页返回Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub▲查找A列文本循环插入分页符返回Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _ .ActivateActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub▲将A列最后数据行以上的所有B列图片大小调整为所在单元大小返回Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小()Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing Then Pic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub▲返回光标所在行数返回Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub▲工作表中包含数据的最大行数返回Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub▲返回A列数据的最大行数返回Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub▲将所选区域文本插入新建文本框返回Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left + ActiveCell.Width, ActiveCell.Top + ActiveCell.Selection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub▲批量插入地址批注返回Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Deleter.AddCommentment.Visible = Falsement.Text Text:="本单元格:" & r.Address & " of " & Selection.AddressNextEnd IfEnd Sub▲批量插入统一批注返回Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=msgNextEnd IfEnd Sub▲以A1单元内容批量插入批注返回Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=[a1].TextNextEnd IfEnd Sub▲以A1单元文本作表名插入工作表返回Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add = nmEnd Sub▲批量插入当前文件名和表名及地址返回Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + + "]" + + "!" + mycell.Address NextEnd Sub▲区域录入当前单元地址返回Sub 区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub▲区域录入当前日期返回Sub 区域录入当前日期()With Application.Calculation = xlManual.MaxChange = 0.001End WithActiveWorkbook.PrecisionAsDisplayed = FalseSelection = "=TEXT(NOW(),""yyyy-m-d"")"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseWindows.Arrange ArrangeStyle:=xlCascadeApplication.CutCopyMode = FalseWith Application.Calculation = xlAutomatic.MaxChange = 0.001End WithActiveWorkbook.PrecisionAsDisplayed = FalseEnd Sub▲区域录入当前数字日期返回Sub 区域录入当前数字日期()Selection = "=VALUE(YEAR(TODAY())&RIGHT(MONTH(TODAY())+100,2)&RIGHT(DAY(TODAY())+100,2))"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub▲区域录入当前日期和时间返回Sub 区域录入当前日期和时间()With Application.Calculation = xlManual.MaxChange = 0.001End WithActiveWorkbook.PrecisionAsDisplayed = FalseSelection = "=TEXT(NOW(),""yyyy-m-d h:mm:ss"")"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseWindows.Arrange ArrangeStyle:=xlCascadeApplication.CutCopyMode = FalseWith Application.Calculation = xlAutomatic.MaxChange = 0.001End WithActiveWorkbook.PrecisionAsDisplayed = FalseEnd Sub▲不连续区域录入对勾返回Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub▲不连续区域录入当前文件名返回Sub 批量录入当前文件名()Selection.FormulaR1C1 = End Sub▲不连续区域添加文本返回Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub▲不连续区域插入文本返回Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub▲从指定位置向下同时录入多单元指定内容返回Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr)End Sub▲按aa工作表A列的内容排列工作表标签顺序返回Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub▲删除全部未选定工作表返回Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub▲工作表标签排序返回Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选 '是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选 '否[N]'", vbYesNoCancel, "工作表排序") If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub▲在目录表建立本工作簿中各表链接目录返回Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1", ScreenTip:=Sheets(i).Name End IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub▲建立工作表文本目录返回Sub 建立工作表文本目录()Sheets.Add before:=Sheets(1)Sheets(1).Name = "目录"For i = 2 To Sheets.CountCells(i - 1, 1) = Sheets(i).Name'Sheets(1).Hyperlinks.Add Cells(i - 1, 1), "#" & Sheets(i).Name & "!A1" '添加超链接NextEnd Sub▲查另一文件的全部表名返回Sub 查另一文件的全部表名()On Error Resume NextDim i%Dim sh As WorksheetApplication.ScreenUpdating = FalseWorkbooks.Open Filename:=ThisWorkbook.Path & "\2.xls"Windows("1.xls").Activate '当前文件名称Sheets("Sheet1").Select '当前表名称i = 1 '将表名称返回到第1行For Each sh In Workbooks("2.xls").WorksheetsCells(i, 1) = '将表名称返回到第1列i = i + 1 '返回每个表名称向下移动1行Next shWindows("2.xls").Close '关闭对象文件Application.ScreenUpdating = TrueEnd Sub▲当前单元录入计算机名返回Sub 当前单元录入计算机名()Selection = Environ("COMPUTERNAME")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲当前单元录入计算机用户名返回 Sub 当前单元录入计算机用户名()Selection = Environ("Username")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲为指定工作表加指定密码保护表返回Sub 为指定工作表加指定密码保护表()Sheet10.Protect Password:="123"End Sub▲在有密码的工作表执行代码返回Sub 在有密码的工作表执行代码()Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123” 打开工作表Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隐藏C列空值行Sheets("1").Protect Password:=123 '重新用密码保护工作表End Sub▲拷贝A1公式和格式到A2返回Sub 拷贝A1公式到A2()Workbooks("临时表").Sheets("表1").Range("A1").CopyWorkbooks("临时表").Sheets("表2").Range("A2").PasteSpecialEnd Sub▲复制单元数值返回Sub 复制数值()s = Workbooks("book1").Sheets("Sheet1").Range("A1:A2")Workbooks("book2").Sheets("Sheet1").Range("A1:A2") = sEnd Sub▲插入数值条件格式返回Sub 插入数值条件格式()Selection.FormatConditions.DeleteSelection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="70"Selection.FormatConditions(1).Interior.ColorIndex = 45Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _Formula1:="55"Selection.FormatConditions(2).Interior.ColorIndex = 39Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="60"Selection.FormatConditions(3).Interior.ColorIndex = 34End Sub▲插入透明批注返回Sub 插入透明批注()Selection.AddCommentment.Visible = FalseDim XS As WorksheetFor i = 1 To ments.Countments(i).Text "透明批注"ments(i).Shape.Fill.Visible = msoFalseNextEnd Sub▲添加文本返回Sub 添加文本()Selection = Selection + "×" '不可在数字后添加文本'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲光标定位到指定工作表A列最后数据行下一单元返回Sub 光标定位到指定工作表A列最后数据行下一单元()a = Sheets("数据库").[a65536].End(xlUp).RowSheets("数据库").SelectRange("A" & a + 1).SelectEnd Sub▲定位选定单元格式相同的全部单元格返回Sub 定位选定单元格式相同的全部单元格()Dim FirstCell As Range, FoundCell As RangeDim AllCells As RangeWith Application.FindFormat.Clear.NumberFormatLocal = Selection.NumberFormatLocal.HorizontalAlignment = Selection.HorizontalAlignment.VerticalAlignment = Selection.VerticalAlignment.WrapText = Selection.WrapText.Orientation = Selection.Orientation.AddIndent = Selection.AddIndent.IndentLevel = Selection.IndentLevel.ShrinkToFit = Selection.ShrinkToFit.MergeCells = Selection.MergeCells = .Font.FontStyle = Selection.Font.FontStyle.Font.Size = Selection.Font.Size.Font.Strikethrough = Selection.Font.Strikethrough.Font.Subscript = Selection.Font.Subscript.Font.Underline = Selection.Font.Underline.Font.ColorIndex = Selection.Font.ColorIndex.Interior.ColorIndex = Selection.Interior.ColorIndex.Interior.Pattern = Selection.Interior.Pattern.Locked = Selection.Locked.FormulaHidden = Selection.FormulaHiddenEnd WithSet FirstCell = edRange.Find(what:="", searchformat:=True)If FirstCell Is Nothing ThenExit SubEnd IfSet AllCells = FirstCellSet FoundCell = FirstCellDoSet FoundCell = edRange.Find(After:=FoundCell, what:="", searchformat:=True) If FoundCell Is Nothing Then Exit DoSet AllCells = Union(FoundCell, AllCells)If FoundCell.Address = FirstCell.Address Then Exit DoLoopAllCells.SelectEnd Sub▲按当前单元文本定位返回Sub 按当前单元文本定位()ABC = SelectionDim aa As RangeFor Each a In edRangeIf a Like ABC ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲按固定文本定位返回Sub 文本定位()Dim aa As RangeFor Each a In edRangeIf a Like "*合计*" ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲删除包含固定文本单元的行或列返回Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is NothingEnd Sub▲定位数据及区域以上的空值返回Sub 定位数据及区域以上的空值()Dim aa As RangeFor Each a In edRangeIf a Like 〈0 ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲右侧单元自动加5(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseTarget.Offset(0, 1) = Target + 5Application.EnableEvents = TrueEnd Sub▲当前单元加2返回Sub 当前单元加2()Selection = Selection + 2'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲A列等于A列减B列返回Sub A列等于A列减B列()For i = 1 To 23Cells(i, 1) = Cells(i, 1) - Cells(i, 2)NextEnd Sub▲用于光标选定多区域跳转指定单元(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)a = Array([b6:b7], [e6], [h6])For i = 0 To 2If Not Application.Intersect(T, a(i)) Is Nothing Then[a1].Select: Exit ForEnd IfNextEnd Sub▲将A1单元录入的数据累加到B1单元(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Dim t As LongIf Target.Address = "$A$1" Thent = Sheet1.Range("$B$1").ValueSheet1.Range("$B$1").Value = t + Target.ValueEnd IfEnd Sub▲在指定颜色区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "")NextEnd Sub▲在指定区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing ThenFor Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub▲双击指定单元,循环录入文本(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub▲单元区域引用(工作表代码)返回Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub▲在指定区域选择单元时数值加1(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub▲选择单元区域触发事件(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Address = "$A$1:$B$2" ThenMsgBox "你选择了$A$1:$B$2单元"End IfEnd Sub▲当修改指定单元内容时自动执行宏(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [B3:B4]) Is Nothing Then重排窗口End IfEnd Sub▲双击单元隐藏该行(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Rows(Target.Row).Hidden = TrueEnd Sub▲高亮显示行(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 2Rows("1:2").Interior.ColorIndex = 40 '保持1至2行的颜色推荐39,22,40,Rows(Target.Row).Interior.ColorIndex = 35 '高亮推荐颜色35,20,24,34,37,40,15End Sub▲为指定工作表设置滚动范围(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Sheet1.ScrollArea = "A1:M30"End Sub▲将全部工作表的A1单元作为单击按钮(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" ThenCall 宏名End IfEnd Sub▲闹钟——到指定时间执行宏(工作簿代码)返回Private Sub Workbook_Open()Application.OnTime ("11:45:00"), "提示1"Application.OnTime ("12:00:00"), "提示2"End Sub▲改变Excel界面标题的宏(工作簿代码)返回Private Sub Workbook_Open()Application.Caption = "春节快乐"End Sub▲在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Worksheets("表2").Range("A1") = Target.Address(0, 0)End Sub▲B列录入数据时在A列返回记录时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 ThenTarget.Offset(, -1) = NowEnd IfEnd Sub▲每编辑一个单元保存文件返回Private Sub Worksheet_Change(ByVal Target As Range)ThisWorkbook.SaveEnd Sub▲指定允许编辑区域返回Sub 指定允许编辑区域()ActiveSheet.ScrollArea = "B8:G15"End Sub▲解除允许编辑区域限制返回Sub 解除允许编辑区域限制()ActiveSheet.ScrollArea = ""End Sub▲删除A列为指定内容的行返回Sub 删除A列为指定内容的行()Dim a, b As Integera = Sheet1.[a65536].End(xlUp).RowFor b = a To 2 Step -1If Cells(b, 1).Value = "删除" ThenRows(b).DeleteEnd IfNextEnd Sub▲删除A列非数字单元行返回Sub 删除A列非数字单元行()i = [a65536].End(xlUp).RowRange("A1:A" & i).SpecialCells(xlCellTypeConstants, 2).EntireRow.DeleteEnd Sub▲有条件删除当前行返回Sub 有条件删除当前行()If [A1] = 2 Or [B1] = "删除" ThenSelection.Delete Shift:=xlUpEnd IfEnd Sub▲选择下一行返回Sub 选择下一行()ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.SelectEnd Sub▲选择光标或选区所在行返回Sub 选择光标或选区所在行()Selection.EntireRow.SelectEnd Sub▲选择光标或选区所在列返回Sub 选择光标或选区所在列()Selection.EntireColumn.SelectEnd Sub▲光标定位到名称指定位置返回Sub 定位()Application.Goto Range(Evaluate("名称"))End Sub▲选择名称定义的数据区返回Sub 选择名称定义的数据区()[数据区].Select '插入名称要使用INDIRECT函数'Range("数据区").Select 或者'Sheet1.Range("数据区").Select 或者End Sub▲将Sheet1的A列的非空值写到Sheet2的A列返回Sub 将Sheet1的A列的非空值写到Sheet2的A列()Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1]End Sub▲将名称1的数据写到名称2返回Sub Macro2()Range("位置2") = Range("位置1").ValueEnd Sub▲单元反选返回Sub 单元反选()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim raddress As String, taddress As Stringraddress = Selection.Addresstaddress = edRange.AddressWith Sheets.Add.Range(taddress) = 0.Range(raddress) = "=0"raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address.DeleteEnd WithActiveSheet.Range(raddress).SelectApplication.ScreenUpdating = TrueEnd Sub▲调整选中对象中的文字返回Sub 调整选中对象中的文字()'文字居中、自动调整大小With Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenter.ReadingOrder = xlContext.Orientation = xlHorizontal.AutoSize = True.AddIndent = FalseEnd WithEnd Sub▲去除指定范围内的对象返回Sub 去除指定范围内的对象()Dim p As ShapeSet My = Worksheets("工作表名")For Each p In My.ShapesIf Not Application.Intersect(p.TopLeftCell, Range("范围")) Is Nothing Then p.Delete NextEnd Sub▲更新透视表数据项返回Sub DeleteMissingItems2002All()'防止数据透视表中显示无用的数据项'在 Excel 2002 或更高版本中'如果无用的数据项已经存在,'运行这个宏可以更新Dim pt As PivotTableDim ws As WorksheetFor Each ws In ActiveWorkbook.WorksheetsFor Each pt In ws.PivotTablespt.PivotCache.MissingItemsLimit = xlMissingItemsNoneNext ptNext wsEnd Sub▲将全部工作表名称写到A列返回Sub 将全部表名称写到A列()k = 1For Each Sht In SheetsCells(k + 1, 1) = '指定写入的行和列k = k + 1NextEnd Sub▲为当前选定的多单元插入指定名称返回Sub 为当前选定的多单元插入指定名称() = "临时"s.Add Name:="临时", RefersTo:=Selection '或者换用这行代码也可以End Sub▲以指定区域为表目录补充新表返回Sub 以指定区域为表目录补充新表()Dim dic As Object, sh As WorksheetDim arr, itemarr = Range("B1:BB1")Set dic = CreateObject("scripting.dictionary")For Each sh In ThisWorkbook.Worksheetsdic.Add , ""NextFor Each item In arrIf item <> "" And Not dic.exists(Trim(item)) ThenWith ThisWorkbook.Worksheets.Add.Name = itemEnd WithEnd IfNextSet dic = NothingEnd Sub▲按A列数据批量修改表名称返回Sub 按A列数据批量修改表名称()Dim i%For i = 1 To Sheets.Count - 1Sheets(i).Name = Cells(i + 1, 1).TextNextEnd Sub▲清除剪贴板返回Sub 清除剪贴板()Application.CutCopyMode = FalsemandBars("Task Pane").Visible = FalseEnd Sub▲批量清除软回车返回Sub 批量清除软回车()'也可直接使用Alt+10或13替换Cells.Replace What:=Chr(10), Replacement:="", LookAt:=xlPart, SearchOrder:= _xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=FalseEnd Sub▲当前文件另存到指定目录返回Sub 当前激活文件另存到指定目录()ActiveWorkbook.SaveAs Filename:="E:\信件\" & End Sub▲另存指定文件名返回Sub 另存指定文件名()ActiveWorkbook.SaveAs ThisWorkbook.Path & "\别名.xls"End Sub▲以本工作表名称另存文件到当前目录返回Sub 以本工作表名称另存文件到当前目录()ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & & ".xls"End Sub▲将本工作表单独另存文件到Excel当前默认目录返回Sub 将本工作表单独另存文件到Excel当前默认目录()ActiveSheet.CopyActiveWorkbook.SaveAs Filename:= & ".xls"End Sub▲以活动工作表名称另存文件到Excel当前默认目录返回Sub 以活动工作表名称另存文件到Excel当前默认目录()ActiveWorkbook.SaveAs Filename:= & ".xls", FileFormat:= _xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _, CreateBackup:=FalseEnd Sub▲另存所有工作表为工作簿返回Sub 另存所有工作表为工作簿()Dim sht As WorksheetApplication.ScreenUpdating = Falseipath = ThisWorkbook.Path & "\"For Each sht In Sheetssht.CopyActiveWorkbook.SaveAs ipath & & ".xls" '(工作表名称为文件名)'ActiveWorkbook.SaveAs ipath & & Trim(sht.[d15]) & ".xls" '(文件名称 & D15单元内容)'ActiveWorkbook.SaveAs ipath & Trim(sht.[d15]) & ".xls" '(文件名称为D15单元内容)ActiveWorkbook.CloseNextApplication.ScreenUpdating = TrueEnd Sub▲以指定单元内容为新文件名另存文件返回Sub 以指定单元内容为新文件名另存文件()ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Sheet1.[A1]End Sub▲以当前日期为新文件名另存文件返回Sub 以当前日期为新文件名另存文件()ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now(), "yyyymmdd") & ".xls"End SubSub 以当前日期为名称另存文件()ActiveWorkbook.SaveAs Filename:=Date & ".xls"End Sub▲以当前日期和时间为新文件名另存文件返回Sub 以当前日期和时间为新文件名另存文件()ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & Format(Now(), "yyyy" & "年" & "mm" & "月" & "dd" & "日" & "h" & "时" & "mm" & "分"End Sub▲另存本表为TXT文件返回Sub 另存本表为TXT文件()Dim s As StringDim FullName As String, rng As RangeApplication.ScreenUpdating = FalseFullName = ( & ".txt") '以当前表名为TXT文件名' FullName = Replace(ThisWorkbook.FullName, ".xls", ".txt") '以当前文件名为TXT文件名' FullName = Replace(ThisWorkbook.FullName, ".xls", & ".txt") '以文件名&表名为TXT文件名 Open FullName For Output As #1 '以读写方式打开文件,每次写内容都会覆盖原先的内容 '参考帮助,fullname为文件全名For Each rng In Range("a1").CurrentRegions = s & IIf(s = "", "", "|") & rng.ValueIf rng.Column = Range("a1").CurrentRegion.Columns.Count ThenPrint #1, s & "|" '把数据写到文本文件里s = ""End IfNextClose #1 '关闭文件Application.ScreenUpdating = TrueMsgBox "数据已导入文本"End Sub▲引用指定位置单元内容为部分文件名另存文件返回Sub 引用指定位置单元内容为部分文件名另存文件()ActiveWorkbook.SaveAs Filename:="E:\信件\" & "解答" & Range("sheet1!a1") & "郎雀.xls"End Sub▲将A列数据排序到D列返回Sub 将A列数据排序到D列()[d:d] = [a:a].Value[d:d].Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlYesEnd Sub▲将指定范围的数据排列到D列返回Sub 将指定范围的数据排列到D列()。
210个常用宏
宏管理其他筛选宏管理宏管理宏管理对象奇偶页分别打印点击打印自动打印多工作表第一页点击打印查找A列文本循环插入分页符点击打印将A列最后数据行以上的所有B列图片大小调整为所在点击对象单元大小返回光标所在行数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用对象批注批注批注单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值工作表工作表工作表文件管理工作表工作表点击单元赋值当前单元录入计算机用户名点击单元赋值为指定工作表加指定密码保护表点击密码在有密码的工作表执行代码点击密码拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式插入透明批注点击批注单元赋值定位定位定位定位定位定位点击单元赋值当前单元加2点击单元赋值A列等于A列减B列点击单元赋值用于光标选定多区域跳转指定单元(工作表代码)点击定位单元赋值单元赋值单元赋值单元赋值单元赋值单元赋值事件事件事件其他定位对象事件其他信息事件单元赋值点击事件指定允许编辑区域点击编辑解除允许编辑区域限制点击编辑删除A列为指定内容的行点击行列操作删除A列非数字单元行点击行列操作有条件删除当前行点击行列操作选择下一行点击定位选择光标或选区所在行点击定位定位名称点击名称将Sheet1的A列的非空值写到Sheet2的A列点击单元赋值将名称1的数据写到名称2点击名称定位格式对象点击数据单元赋值名称点击工作表按A列数据批量修改表名称点击工作表清除剪贴板点击其他其他文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理文件管理点击文件管理将A列数据排序到D列点击单元赋值单元赋值定位行列操作点击数据取消数据有效限制点击数据重排窗口点击窗口定位定位定位工作表文件管理行列操作工作表工作表工作表格式工作表工作表点击工作表工作表行列操作定位点击定位格式格式事件事件数据其他其他单元赋值事件事件事件事件点击单元赋值选择2至4行点击定位在当前选区有条件替换数值为文本点击事件自动筛选全部显示指定列点击筛选全部显示指定表的自动筛选点击筛选强行合并单元点击格式指定A列的日期格式点击格式单元赋值事件事件点击行列操作在A列产生不重复随机数点击单元赋值单元赋值单元赋值其他信息格式格式点击单元赋值建立当前工作表的副本为001表点击工作表插入新表点击工作表单元赋值自定义函数信息超链接超链接超链接超链接点击查找和引用返回表中第一个非空单元地址(行搜索)点击查找和引用返回表中各非空单元区域地址(行搜索)点击查找和引用返回非空单元数量点击查找和引用返回A列非空单元数量点击查找和引用返回圆周率π点击其他打印单元赋值单元赋值单元赋值对指定工作表执行取消隐藏》打印》隐藏工作表点击打印打开excel就执行某个宏点击事件信息事件点击工作表重算指定表点击工作表将第5行移到窗口的最上面点击窗口对第一张工作表的指定区域进行排序点击单元赋值显示指定工作表的打印预览点击打印用单元格A1的内容作为文件名另存当前工作簿点击文件管理[禁用/启用]保存和另存的代码点击文件管理在A和B列返回当前选区的名称和公式点击单元赋值朗读朗读A列,按ESC键中止点击语音朗读固定语句,请按ESC键终止点击语音在M和N列的14行以下选择单元时显示调用日历控件点击对象(工作表代码)添加自定义序列点击其他弹出打印对话框点击打印打印事件点击工作表把a列不重复值取到e列点击查找和引用查找和引用工作表点击事件事件其他点击其他按照当前行A列的图片名称插入图片到H列点击图片当前行下插入1行点击工作表取消隐藏的指定行或列点击工作表。
199个常用宏
奇偶页分别打印点击自动打印多工作表第一页点击查找A列文本循环插入分页符(模块)点击将A列最后数据行以上的所有B列图片大小调整为所在单元大小点击返回光标所在行数点击在A1返回当前选中单元格数量点击返回当前工作簿中工作表数量点击返回光标选择区域的行数和列数点击工作表中包含数据的最大行数点击返回A列数据的最大行数点击将所选区域文本插入新建文本框点击批量插入地址批注点击批量插入统一批注点击以A1单元内容批量插入批注点击不连续区域插入当前文件名和表名及地址点击不连续区域录入当前单元地址点击连续区域录入当前单元地址点击返回当前单元地址点击不连续区域录入当前日期点击不连续区域录入当前数字日期点击不连续区域录入当前日期和时间点击不连续区域录入对勾点击不连续区域录入当前文件名点击不连续区域添加文本点击点击当前单元录入计算机用户名点击为指定工作表加指定密码保护表点击在有密码的工作表执行代码点击执行前需要验证密码的宏(控件按钮代码)点击拷贝A1公式和格式到A2点击插入数值条件格式点击点击当前单元加2点击点击每编辑一个单元保存文件点击指定允许编辑区域点击解除允许编辑区域限制点击删除指定行点击删除A列为指定内容的行点击删除A列非数字单元行点击有条件删除当前行点击选择下一行点击选择第5行开始所有数据行点击选择光标或选区所在行点击选择到指定列的最后行点击将Sheet1的A列的非空值写到Sheet2的A列点击单元反选点击将全部工作表名称写到A列点击为当前选定的多单元插入指定名称点击按A列数据批量创建新表(控件按钮代码)点击批量清除软回车点击判断指定文件是否已经打开点击当前文件另存到指定目录点击点击将A列数据排序到D列点击将指定范围的数据排列到D列点击光标移动点击光标所在行上移一行点击加数据有效限制点击取消数据有效限制点击点击打开文件时提示指定工作表是保护状态(ThisWorkbook)点击插入10行点击全选固定范围内小于0的单元点击全选选定范围内小于0的单元点击固定区域单元分类变色点击点击显示光标所在单元的批注的代码点击使单元内容保持不变的工作表代码点击提示确定或取消执行宏点击拷贝指定表不相邻多列数据到新位置点击选择2至4行点击在当前选区有条件替换数值为文本点击自动筛选第2列值为A的行点击取消自动筛选()点击全部显示指定表的自动筛选点击强行合并单元点击设置单元区域格式点击点击在A列产生不重复随机数点击将A列数据随机排列到F列点击取消选定区域的公式只保留值(假空转真空)点击返回指定单元的行高和列宽点击指定行高和列宽点击指定单元的行高和列宽与A1单元相同点击填公式点击建立当前工作表的副本为001表点击在第一个表前插入多工作表点击点击返回表中第一个非空单元地址(行搜索)点击返回表中各非空单元区域地址(行搜索)点击返回第一个数值行号点击返回第1行最右边非空单元的列号点击返回连续数值单元的数量点击统计指定范围和内容的单元数量点击统计不同颜色的数字的和(自定义函数)点击返回非空单元数量点击返回A列非空单元数量点击返回圆周率π点击定义指定单元内容为页眉/页脚点击提示并全部清除当前选择区域点击全部清除当前选择区域点击清除指定区域数值点击对指定工作表执行取消隐藏》打印》隐藏工作表点击弹出提示A1单元内容点击撤消工作表保护并取消密码点击重算指定表点击将第5行移到窗口的最上面点击对第一张工作表的指定区域进行排序点击显示指定工作表的打印预览点击用单元格A1的内容作为文件名另存当前工作簿点击在A和B列返回当前选区的名称和公式点击添加自定义序列点击弹出打印对话框点击点击隐藏指定工作表的指定列点击把a列不重复值取到e列点击当前选区的行列数点击提示并清空单元区域点击返回光标所在行号点击VBA返回公式结果点击当前行下插入1行点击取消指定行或列的隐藏点击复制单元格所在列点击新建一个工作表点击新建一个工作簿点击删除指定文件点击合并A1至C1的内容写到D15单元的批注中点击重算模式点击分离字符串到每个单元格点击条件格式点击自动录入一个符号点击保护所有工作表点击判断正负数点击判断奇偶数点击选中变色点击自动输入当前日期点击高亮显示当前行点击按A列数据批量修改表名称点击光标指定到名称指定位置(模块)点击选择多表为工作组点击。
Excel200多个宏代码集,比函数强多了!有效提高工作效率!
宏是一些指令集,制作表格的过程中会有一直重复做且非常繁琐的工作,因此就可以通过宏来节约时间简化步骤,对于提高工作效率是非常有好处的。对于经常使用excel表格来工作的话,能有效地提高工作,让自己变得更轻松!
用Alt+F11快捷键可直接打开VBA(宏)编辑界面,进入界面,将你要用的代码复制粘贴到里面,运行宏代码即可完成你想要的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码目录链接类别
打开全部隐藏工作表点击
循环宏点击
录制宏时调用“停止录制”工具栏点击
高级筛选5列不重复数据至指定表点击
双击单元执行宏(工作表代码)点击
双击指定区域单元执行宏(工作表代码)点击
进入单元执行宏(工作表代码)点击
进入指定区域单元执行宏(工作表代码)点击
在多个宏中依次循环执行一个(控件按钮代码)点击
在两个宏中依次循环执行一个并相应修改按钮名称
点击
(控件按钮代码)
在三个宏中依次循环执行一个并相应修改按钮名称
点击
(控件按钮代码)
根据A1单元文本隐藏/显示按钮(控件按钮代码)点击
当前单元返回按钮名称(控件按钮代码)点击
当前单元内容返回到按钮名称(控件按钮代码)点击
奇偶页分别打印点击打印
自动打印多工作表第一页点击打印
查找A列文本循环插入分页符点击打印
将A列最后数据行以上的所有B列图片大小调整为所在
点击对象
单元大小
返回光标所在行数点击查找和引用在A1返回当前选中单元格数量点击查找和引用返回当前工作簿中工作表数量点击查找和引用返回光标选择区域的行数和列数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用将所选区域文本插入新建文本框点击对象
批量插入地址批注点击批注
批量插入统一批注点击批注
以A1单元内容批量插入批注点击批注
不连续区域插入当前文件名和表名及地址点击单元赋值不连续区域录入当前单元地址点击单元赋值连续区域录入当前单元地址点击单元赋值返回当前单元地址点击单元赋值不连续区域录入当前日期点击单元赋值不连续区域录入当前数字日期点击单元赋值不连续区域录入当前日期和时间点击单元赋值不连续区域录入对勾点击单元赋值不连续区域录入当前文件名点击单元赋值不连续区域添加文本点击单元赋值不连续区域插入文本点击单元赋值从指定位置向下同时录入多单元指定内容点击单元赋值按aa工作表A列的内容排列工作表标签顺序点击工作表
工作表
工作表
工作表
工作表
文件管理
工作表
工作表
点击单元赋值当前单元录入计算机用户名点击单元赋值解除全部工作表保护点击工作表为指定工作表加指定密码保护表点击密码
在有密码的工作表执行代码点击密码
执行前需要验证密码的宏(控件按钮代码)点击密码
拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式
插入透明批注点击批注
单元赋值
定位
定位
定位
定位
定位
定位
点击单元赋值当前单元加2点击单元赋值
单元赋值
定位
单元赋值
单元赋值
单元赋值
单元赋值
单元赋值
单元赋值
单元赋值
单元赋值
事件
事件
事件
事件
其他
其他
定位
打印
单元赋值
对象
事件
其他
信息
事件
单元赋值
单元赋值
点击事件
指定允许编辑区域点击编辑
解除允许编辑区域限制点击编辑
删除指定行点击行列操作删除A列为指定内容的行点击行列操作删除A列非数字单元行点击行列操作有条件删除当前行点击行列操作选择下一行点击定位
选择第5行开始所有数据行点击定位
选择光标或选区所在行点击定位
定位
名称
点击名称
选择到指定列的最后行点击定位
将Sheet1的A列的非空值写到Sheet2的A列点击单元赋值将名称1的数据写到名称2点击名称
定位
格式
对象
点击数据
单元赋值
名称
名称
点击工作表按A列数据批量修改表名称点击工作表按A列数据批量创建新表(控件按钮代码)点击工作表清除剪贴板点击其他
批量清除软回车点击其他
判断指定文件是否已经打开点击事件
当前文件另存到指定目录点击文件管理
文件管理
文件管理
文件管理
文件管理
文件管理
文件管理
文件管理
文件管理
文件管理
引用指定位置单元内容为部分文件名另存文件点击文件管理将A列数据排序到D列点击单元赋值将指定范围的数据排列到D列点击单元赋值
定位
行列操作
点击数据
取消数据有效限制点击数据
重排窗口点击窗口
按当前单元文本选择打开指定文件单元点击定位
回车光标向右点击定位
回车光标向下点击定位
保护工作表时取消选定锁定单元点击工作表
文件管理
行列操作
工作表
工作表
工作表
工作表
工作表
格式
工作表
工作表
点击工作表
工作表
行列操作
定位
点击定位
固定区域单元分类变色点击格式
格式
事件
事件
数据
点击其他
显示光标所在单元的批注的代码点击其他
单元赋值
事件
事件
事件
事件
点击单元赋值选择2至4行点击定位
在当前选区有条件替换数值为文本点击事件
自动筛选全部显示指定列点击筛选
自动筛选第2列值为A的行点击筛选
取消自动筛选()点击筛选
全部显示指定表的自动筛选点击筛选
强行合并单元点击格式
格式
单元赋值
事件
事件
点击行列操作在A列产生不重复随机数点击单元赋值
单元赋值
单元赋值
点击其他
返回指定单元的行高和列宽点击信息
指定行高和列宽点击格式
指定单元的行高和列宽与A1单元相同点击格式
填公式点击单元赋值
工作表
工作表
单元赋值
自定义函数
信息
超链接
超链接
超链接
超链接
查找和引用
点击查找和引用返回表中各非空单元区域地址(行搜索)点击查找和引用
查找和引用
查找和引用
查找和引用
查找和引用
查找和引用
点击查找和引用返回A列非空单元数量点击查找和引用返回圆周率π点击其他
定义指定单元内容为页眉/页脚点击打印
提示并全部清除当前选择区域点击单元赋值全部清除当前选择区域点击单元赋值清除指定区域数值点击单元赋值对指定工作表执行取消隐藏》打印》隐藏工作表点击打印
打开文件时执行指定宏(工作簿代码)点击事件
关闭文件时执行指定宏(工作簿代码)点击事件
信息
事件
点击工作表
重算指定表点击工作表
将第5行移到窗口的最上面点击窗口
对第一张工作表的指定区域进行排序点击单元赋值
显示指定工作表的打印预览点击打印
用单元格A1的内容作为文件名另存当前工作簿点击文件管理[禁用/启用]保存和另存的代码点击文件管理在A和B列返回当前选区的名称和公式点击单元赋值朗读朗读A列,按ESC键中止点击语音
朗读固定语句,请按ESC键终止点击语音
在M和N列的14行以下选择单元时显示调用日历控件
点击对象
(工作表代码)
添加自定义序列点击其他
弹出打印对话框点击打印
打印
事件
事件
点击工作表
把a列不重复值取到e列点击查找和引用
查找和引用
工作表
点击事件
事件
其他
点击其他
按照当前行A列的图片名称插入图片到H列点击图片
当前行下插入1行点击工作表
取消指定行或列的隐藏点击工作表
复制单元格所在行点击其他
复制单元格所在列点击其他
新建一个工作表点击工作表
新建一个工作簿点击工作簿
工作表
事件
工作簿
点击工作簿
合并A1至C1的内容写到D15单元的批注中点击批注
自动重算点击其他
手动重算点击其他
EH帖子地址net/dispbbs.asp?boardid=4&id=239820。