使用方法

1. 打开VBA代码窗口:工作表右键-->查看代码

2. 创建写代码的地方:菜单栏-->插入-->模块

3. 写代码

代码格式:Sub 程序名(参数)可以执行任务的代码End Sub

例子:

Sub test()

Range("E3") = 111

End Sub

运行结果:

4. 在excl中添加按钮

插入一个形状

形状上右键-->指定宏

选择指定程序名

此时,点击这个按钮,就能执行指定程序

一些程序代码

1. '

英文单引号,注释

2. Range("单元格")=内容

Range("E1") = 111 '数字

Range("E2") = "abc" '字符串

Range("E3") = "" '清空

3.

小技巧

1. 出现红色代码,以至无法修改,无法删除时,可以按几下下面这个按钮(列出属性或方法)

参考链接

https://baijiahao.baidu.com/s?id=1591720369258445486&wfr=spider&for=pc

https://www.cnblogs.com/dazuo/p/4920921.html

(1) Option Explicit '强制对模块内所有变量进行声明

(2) Option Base 1 '指定数组的第一个下标为1

(3) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息

(4) On Error GoTo 100 '当错误发生时跳转到过程中的某个位置

(5) On Error GoTo 0 '恢复正常的错误提示

(6) Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示

(7) Application.DisplayAlerts=True '在程序执行过程中恢复显示警告框

(8) Application.ScreenUpdating=False '关闭屏幕刷新

(9) Application.ScreenUpdating = True '打开屏幕刷新

(10)  Workbooks.Add() '创建一个新的工作簿

(11)  Workbooks(“book1.xls”).Activate '激活名为book1的工作簿

(12) ThisWorkbook.Save '保存工作簿

(13) ThisWorkbook.close '关闭当前工作簿

(14)  ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数

(15)  ActiveWorkbook.name  '返回活动工作薄的名称

(16) ThisWorkbook.Name '返回当前工作簿名称

(17) ThisWorkbook.FullName '返回当前工作簿路径和名

(18) ActiveSheet.UsedRange.Rows.Count '当前工作表中已使用的行数

(19) Rows.Count '获取工作表的行数(注:考虑兼容性)

(20)  Sheets(Sheet1).Name= “Sum” '将Sheet1命名为Sum

(21)  ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前

(22)  ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后

(23)  Worksheets(Array(“sheet1”,”sheet2”)).Select '同时选择工作表1和工作表2

(24)  Sheets(“sheet1”).Delete或Sheets(1).Delete '删除工作表1

(25)  ActiveSheet.UsedRange.FormatConditions.Delete '删除当前工作表中所有的条件格式

(26)  Cells.Hyperlinks.Delete '取消当前工作表所有超链接

(27) ActiveCell.CurrentRegion.Select选择当前活动单元格所包含的范围,等同于快捷键Ctrl A

(28)  Cells.Select '选定当前工作表的所有单元格

(29)  Range(“A1”).ClearContents '清除活动工作表上单元格A1中的内容。Selection.ClearContents '清除选定区域内容。

Range(“A1:D4”).Clear '彻底清除A1至D4单元格区域的内容,包括格式。

(30)  Cells.Clear '清除工作表中所有单元格的内容

(31) ActiveCell.Offset(1,0).Select '活动单元格下移一行,同理,可下移一列

(32)  Range(“A1”).Copy Range(“B1”) '复制单元格A1,粘贴到单元格B1中

(33) Range(“A1:D8”).Copy Range(“F1”) '将单元格区域复制到单元格F1开始的区域中

(34) Range(“A1:D8”).Cut Range(“F1”) '剪切单元格区域A1至D8,复制到单元格F1开始的区域中

(35) Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) '复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中。

(36) ActiveWindow.RangeSelection.Count '活动窗口中选择的单元格数

(37)  Selection.Count '当前选中区域的单元格数

(38) Range(“A1”).Interior.ColorIndex '获取单元格A1背景色

(39)  cells.count '返回当前工作表的单元格数

(40) Range(“B3”).Resize(11, 3)

(41) Union(Range(“A1:A9”),Range(“D1:D9”)) 区域连接

(42) Intersect(Range(“A1:B9”),Range(“A1:D9”))) '返回的交叉区域

(43)  Selection.Columns.Count '当前选中的单元格区域中的列数

(44) Selection.Rows.Count '当前选中的单元格区域中的行数

(45) ActiveSheet.UsedRange.Row  '获取单元格区域中使用的第一行的行号

(46)  Application.WorksheetFunction.IsNumber(“A1”) '使用工作表函数检查A1单元格中的数据是否为数字

(47) Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate'激活单元格区域A列中最大值的单元格

(48) MsgBox “Hello!” '消息框中显示消息Hello

(49) Ans=MsgBox(“Continue?”,vbYesNo) '在消息框中点击“是”按钮,则Ans值为vbYes;点击“否”按钮,则Ans值为vbNo。

(50)  Userform1.Show '显示用户窗体

(51) Load Userform1 '加载一个用户窗体,但该窗体处于隐藏状态

(52)  Userform1.Hide '隐藏用户窗体

(53) Unload Userform1 或Unload Me '卸载用户窗体

(54) UserForm1.Show 0'将窗体设置为无模式状态

(55)  Application.EnableEvents=False '禁用所有事件

(56) Application.EnableEvents = True '启用所有事件

(57) Set d = CreateObject(Scripting.Dictionary) '创建一个Dictionary 对象变量

(58)  d.Add 'a', 'Athens' '为对象变量添加关键字和条

(59)  Application.OnKey “^I”,”macro” '设置Ctrl I键为macro过程的快捷键

(60)  Application.CutCopyMode=False '退出剪切/复制模式

(61)  Application.Volatile True '无论何时工作表中任意单元格重新计算,都会强制计算该函数

(62) Application.Volatile False '只有在该函数的一个或多个参数发生改变时,才会重新计算该函数

(63)  Err.Clear '清除程序运行过程中所有的错误

(64) Workbooks.Close '关闭所有打开的工作簿

(65) ActiveWorkbook.Path '返回当前工作簿的路径(注:若工作簿未保存,则为空)

(66) ActiveWorkbook.Saved '返回工作簿的存储值(若已保存则为False)

(67) Application.Visible = False '隐藏工作簿

(68) Application.Visible = True '显示工作簿

(69)  ActiveSheet.Columns('B').Insert '在A列右侧插入列,即插入B列

(70) ActiveSheet.Columns('E').Cut

(71) ActiveSheet.Columns('B').Insert  70,71两句将E列数据移至B列,原B列及以后的数据相应后移

(72) ActiveSheet.Calculate '计算当前工作表

(73) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden '正常隐藏工作表,同在Excel菜单中选择“格式——工作表——隐藏”操作一样

(74) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden '隐藏工作表,不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工作

(75) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVisible '显示被隐藏的工作表

(76)  ThisWorkbook.Sheets(1).ProtectContents '检查工作表是否受到保护

(77)  ThisWorkbook.Worksheets.Add Count:=2, Before:=ThisWorkbook.Worksheets(2) 或ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2  '在第二个工作表之前添加两个新的工作表

(78) ThisWorkbook.Worksheets(3).Copy '复制一个工作表到新的工作簿

(79)  ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) '复制第三个工作表到第二个工作表之前

(80) ThisWorkbook.Worksheets(1).Activate '当前工作簿中的第一个工作表被激活

(81) ThisWorkbook.Worksheets('Sheet1').Rows(1).Hidden = True '将工作表Sheet1中的1隐藏

(82) ActiveCell.EntireRow.Hidden = True '将当前工作表中活动单元格所在的行隐藏

(83)  ActiveSheet.Range(“A:A”).EntireColumn.AutoFit '自动调整当前工作表A列列宽

(84) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) '选中当前工作表中常量和文本单元格

(85) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors xlTextValues) '选中当前工作表中常量和文本及错误值单元格

(86) Application.WorksheetFunction.CountA(Range(“A:A”)) 1 '获取A列的下一个空单元格

(87) Set FirstCell=Range(RefEdit1.Text).Range(“A1”) '设置某单元格区域左上角单元格

(88)  Application.OnTime Now TimeValue('00:00:15'), 'myProcedure' '等待15秒后运行myProcedure过程

(89) Application对象

(90)  Application.UserName '返回应用程序的用户名

(91)  Application.Caller.Parent.Parent '返回调用函数的工作簿名称

(92)  Application.StatusBar=”请等待……” '将文本写到状态栏

(93)  Application.StatusBar=False '将状态栏重新设置成正常状态

(94)  Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”)) '返回一个垂直的数组

(95)  Application.ActiveCell.Address '返回活动单元格的地址(注:返回的是绝对地址)

(96)  Application.ActiveSheet.Name '返回活动工作表的名称

(97)  Application.ActiveWindow.Caption '返回活动窗口的标题

(98) Application.ActiveWorkbook.Name '返回活动工作簿的名称

(99)  Application.Selection.Address '返回所选区域的地址

(100) Application.ThisWorkbook.Name '返回当前工作簿的名称

(101) Range(A1:A10).Value=Application.WorksheetFunction.Transpose(MyArray) '将一含有10个元素的水平数组转置成垂直数组,并写入工作表单元格区域(A1至A10)。

(102) Cells(rows.count,1).End(xlUp).Row 1 '返回A列最后一行的下一行

(103)  rng.Range(“A1”) '返回区域左上角的单元格

(104)  ActiveSheet.Range('A:B').Sort Key1:=Columns('B'), Key2:=Columns('A'), Header:=xlYes '两个关键字排序,相邻两列,B列为主关键字,A列为次关键字,升序排列

(105)  cell.Range(“A1”).HasFormula '检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula '工作表中单元格是否含有公式

(106)  Cell.EntireColumn '单元格所在的整列

(107) Cell.EntireRow '单元格所在的整行

(108) rng.Address '返回rng区域的地址

(109)  Range(“D5:D10”).Cells(1,1) '返回单元格区域D5:D10中左上角单元格

(110)  ActiveCell.Row '活动单元格所在的行数

(111) ActiveCell.Column '活动单元格所在的列数

(112)  Set MyRange=Range(“A1:A5”) '创建一个名为MyRange的对象变量

(113)  Application.Calculation = xlCalculationManual '设置工作簿手动计算

(114) Application.Calculation = xlCalculationAutomatic '工作簿自动计算

(115)  Worksheets(1).EnableCalculation = False '不对第一张工作表自动进行重算

(116) ActiveSheet.Shapes.AddPicture 'd:\sx.jpg', True, True, 60, 20, 400, 300 '在当前工作表中插入一张d盘中名为sx.jpg的图片

Excel的VBA使用相关推荐

  1. 《Excel与VBA开发》一书上市时间

    如果没有意外的话,<Excel与VBA开发>一书在9月初应该就可以上市.

  2. 【Excel】VBA批量修改文件名

    Excel:VBA批量修改文件名 Dim filePath As Variant '定义filepath为变量 Dim obj As Object '定义obj为变量对象 Dim fld, ff, g ...

  3. excel 2007 vba与宏完全剖析_Excel宏VBA小技巧系列 | 分段加合

    写在前面的话  知识产权算是一个盛产数据的行业.专利啊商标啊著作啊,都有著录项目.我们常说的专利分析.产业导航.企业导航.产业预警.竞争情报.技术综述.知识产权评议等等,常规操作之一就要先处理著录项目 ...

  4. 【Monkey Run】Excel编程 VBA

    Excel编程 VBA 天气如此舒适,装B逐渐减少,所以最近的blog输出一直停滞不前.然而最近一直忙于Excel编程,觉得也有点从0到1的学习创造过程,有必要总结记录下.具体的VBA编程知识可以借鉴 ...

  5. 苦学Excel、VBA,工作效率依旧低下?你该认识这个新工具了

    到底是谁的错? " 996......998......1000......",抬头望着办公室唯一一盏亮着的灯,再低头看看PC端,成百上千的excel数据表单,你内心烦闷,似乎有话 ...

  6. Excel 2003 VBA编程参考

    Excel 2003 VBA编程参考 关于作者 Paul Kimmel Paul Kimmel于1990年创立了Software Conceptions公司,并从那时开始设计和创建软件以及编写计算机图 ...

  7. 使用Excel的VBA简单语句处理循环、判断等操作

    什么是VBA VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程序功能,特别是Microsoft Offi ...

  8. Excel宏(VBA)类模块的创建与调用

    Excel宏VBA类模块的创建与调用 1 类模块的介绍 2 为什么要使用类模块 3 如何创建类模块 4 如何调用类模块 5 代码 1 类模块的介绍 2 为什么要使用类模块 3 如何创建类模块 类模块的 ...

  9. Excel与VBA编程中的常用代码

    Excel与VBA编程中的常用代码 用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的! 使用Dim语句 Dim a as integer '声明A为整形变量 Dim a '声 ...

  10. 【源码】声明32位和64位Access、Excel等VBA兼容的API函数的方法

    1.在声明中加上  PtrSafe 关键字 2.加上VBA7 及Win64的判断 Declare 语句 PtrSafe 关键字(可参考VBA帮助) 带有 PtrSafe 关键字的 Declare 语句 ...

最新文章

  1. Connection cannot be null when 'hibernate.dialect'
  2. 多线程问题导致的JDBMonitor的bug分析
  3. yolov5 代码版,去掉配置文件
  4. 开发日记-20190514 关键词 汇编语言(七)
  5. 从 WordCount 到 MapReduce 计算模型
  6. Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
  7. activiti候选人的多个场景应用
  8. js 数组(Array)
  9. 日期相减 python_如果将excel的数字转化为日期(高级教程)
  10. 【转载保存】java静态方法继承与保存的问题
  11. undo log mysql_MySQL的redo log与undo log
  12. java集合类的框架图_Java集合框架01-框架总览
  13. 高逼格的程序员这样度过十一假期
  14. python爬取网站所有资源
  15. 一个手机用c网可以打开网站切换到g网就打不开_推荐一些设计师常用网站!!!...
  16. 仿微信.QQ聊天界面
  17. wnmp mysql 密码_WNMP(Windows + Nginx + PHP + MySQL) 安装
  18. 文字前的小图标HTML,Font Awesome实现文字链右边加一个箭头图标
  19. 我的世界java多人不刷溺尸_我的世界:不同版本的三叉戟掉落率不一样?刷了一两百溺尸也没有!...
  20. PTA天天练(大于身高的平均值 )

热门文章

  1. CNCF宣布TUF项目正式毕业
  2. 如何使用Win10搭建我的世界Minecraft服务器
  3. Atmel ATSAMV70Q20 的 CAN 扩展帧收发设置
  4. 用户注册+登录(下)
  5. Oracle从dmp中导入一张表
  6. Oracle数据库,创建表并给表、字段添加注释.
  7. RxJava学习 - 11. Switching, Throttling, Windowing, and Buffering
  8. 在深度学习中使用Bagging集成模型
  9. 网络通信详解-深入浅出
  10. HJ68 成绩排序 ●●