Execl工具-宏-常用脚本汇总

文件处理/打印

Application.EnableEvents= True/ False ’启用/禁用所有事件
 
Application.DisplayAlerts=True/False ’显示/关闭警告框提示框
 
Application.ScreenUpdating= True/False ’显示/关闭屏幕刷新
 
Application.StatusBar = "软件报专用"   ’在地址栏中显示文本,标题栏用Caption属性
 
Application.Cursor = xlIBeam   ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常
 
Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常
 
Application.ActivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序
 
Application.TemplatesPath ‘获取工作簿模板的位置
 
Application.CalculateFull ’重新计算所有打开的工作簿中的数据
 
Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2
 
Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档
 
Application.AutoCorrect.AddReplacement "sweek", "软件报"    ’自动将输入的"sweek"更正为"软件报"
 
Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框
 
Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程
 
Application.OnTime TimeValue("14:00:00"), " process "   ’下午2点执行指定过程
 
Application.OnTime EarliestTime:=TimeValue("14:00:00"), _
 
Procedure:="process", Schedule:=False    ’取消指定时间的过程的执行

工作簿/工作表篇

 
ActiveWorkbook.Sheets.Count ’获取活动工作薄中工作表数
 
ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿中的第一条链接
 
ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden ‘隐藏工作表,与在Excel菜单中执行“格式—工作表—隐藏”操作一样
 
ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden ‘隐藏工作表,不能通过在Excel菜单中执行“格式—工作表—取消隐藏”来重新显示工作表
 
ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible ‘显示被隐藏的工作表
 
ThisWorkbook.Sheets(1).ProtectContents ‘检查工作表是否受到保护
 
ActiveSheet.Columns("B").Cut
 
ActiveSheet.Columns("F").Insert ‘以上两句将B列数据移至F列,原C列后的数据左移
 
ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列的列宽
 
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格
 
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格
 
ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数
 
ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(3), , 2   ‘在第3张工作表之前添加2个新的工作表
 
ActiveSheet.Move After:=ActiveWorkbook. _
 
Sheets(ActiveWorkbook.Sheets.Count) ’将当前工作表移至工作表的最后
 
Worksheets(Array(“sheet1”,”sheet2”)).Select ’同时选择工作表sheet1和sheet2
 
ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中应用的条件格式
 
Cells.Hyperlinks.Delete ‘取消当前工作表中所有单元格的超链接
 
ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页脚显示文件的路径
 
ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮
 

单元格/单元格区域篇

ActiveSheet.UsedRange.Row ‘获取已使用的单元格区域的第一行的行号
 
Range(“A65536”).End(xlUp).Row ‘返回A列最后一行(即记录的总条数)
 
cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula ‘工作表中单元格是否含有公式
 
Target.EntireColumn.Select ‘选择单元格所在的整个列,Target.EntireRow.Select为选择单元格所在的整行
 
ActiveCell.Row ‘活动单元格所在的行号,ActiveCell.Column为活动单元格所在的列数
 
ActiveWindow.ScrollRow = 2 ’将当前工作表窗口滚动到第2行
 
ActiveWindow.ScrollColumn = 5 ’将当前工作表窗口滚动到第5列
 
Worksheets("sheet1").Range("A1:C5").CopyPicture xlScreen, xlBitmap ’将指定的单元格区域的内容复制成屏幕快照
 
Selection.Hyperlinks.Delete ‘删除所选区域的所有链接
 
ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘Bold属性用于设置字体是否为加粗, Size属性设置字体大小, ColorIndex属性设置字体颜色(其值为颜色索引号), Italic属性设置字型是否为倾斜, Name属性设置字体名称
 
ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘将单元格的背景色设置为红色
 
IsEmpty (ActiveCell.Value) ’判断活动单元格中是否有值
 
ActiveCell.Value = UCase(ActiveCell.Value) ’将当前单元格中的字符转换成大写
 
ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) ’将活动单元格中的字符串转换成小写
 
ActiveCell.CurrentRegion.Select ’选择当前活动单元格所在的连续的非空区域,也可以用Range(ActiveCell, UsedRange.End(xlDown)).Select
 
ActiveCell.Offset(1,0).Select ’活动单元格下移一行
 
Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1) ‘读取指定单元格右侧单元格中的数据
 
Range(“B2”).Offset(Rowoffset:=-1)或Range(“B2”).Offset(-1) ‘读取指定单元格上一行单元格中的数据
 
Range(“A1”).Copy Range(“B1”) ’复制单元格A1中的内容到B1中
 
Range(“A1:D8”).Copy Range(“H1”) ’将指定单元格区域复制到从H1开始的区域中,用Cut方法可以实现剪切操作
 
ActiveWindow.RangeSelection.Value = "软件报" ’将指定字符串输入到所选单元格区域中

窗体(控件)篇

 
Option Explicit ’强制对模块内所有变量进行声明
 
Userform1.Show ‘显示用户窗体
 
Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态
 
Userform1.Hide ‘隐藏用户窗体
 
Unload Userform1 或 Unload Me ‘卸载用户窗体
 
Me.Height=Int(0.5 * ActiveWindow.Height) ‘窗体高度为当前活动窗口高度的一半,宽度用ActiveWindow. Width属性
 
UserForm1.ComboBox1.AddItem Sheets("Sheet1").Cells(1, 1) ‘将指定单元格中的数据添加到复合框中
 
ListBox1.List=MyProduct() ‘将数组MyProduct的值添加到列表框ListBox1中
 
ListBox1.RowSource=”Sheet1!isum” ‘将工作表Sheet1中名为的isum区域的值添加到列表框中
 
ListBox1.Selected(0) ‘选中列表框中的指定的条目
 
ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目
 
If MsgBox(“要退出吗?”,vbYesNo)<>vbYes Then Exit Sub ’返回值不为“是”,则退出
 
Config=vbYesNo+vbQuestion+vbDefaultButton2 ’使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮 
 
MsgBox “This is the first line.” & vbNewLine & “Second line.” ’在消息框中强制换行,也可用vbCrLf代替vbNewLine。
 
MsgBox "平均值为:"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation, "显示选区平均值" ’应用工作表函数返回所选区域的平均值并按指定显示的格式

公式与函数

 
Application.WorksheetFunction.IsNumber(“A1”) ’检查指定单元格中的数据是否为数字
 
Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate 
 
’激活单元格区域A列中最大值的单元格
 
Application.MacroOptions Macro:=”GetSum”,Category:=4 ‘将自定义的GetSum函数指定给Excel中的“统计函数”类别
 
Application.MacroOptions Macro:=” GetSum”, _
 
Description:=”先求和,然后再输出。” ‘为自定义函数GetSum进行功能说明
 
Application.WorksheetFunction.CountA(Cell.EntireColumn) ‘返回该单元格所在列非空单元格的数量,所在行使用EntireRow属性
 
Application.WorksheetFunction.CountA(Cells) ‘返回当前工作表中非空单元格数量

图表篇

ActiveSheet.ChartObjects.Delete ‘删除工作表中所有的ChartObject对象

ActiveWorkbook.Charts.Delete ‘删除当前工作簿中所有的图表工作表 ActiveSheet.ChartObjects.Count ’获取当前工作表中图表的个数

Worksheets("Sheet1").ChartObjects(1).Chart. _

Export Filename:="C:\MyChart.gif", FilterName:="GIF" ‘将指定工作表中的图表1导出到C盘上并命名为MyChart.gif
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容