相关文章推荐
潇洒的凉茶  ·  在SQL Server表中解码Base64·  7 月前    · 
温文尔雅的蘑菇  ·  Running cells with ...·  1 年前    · 
冷静的帽子  ·  asp.net mvc form ...·  1 年前    · 
唠叨的棒棒糖  ·  在Spring ...·  1 年前    · 

1.1.变量定义

在进行vba操作前,一般需要定义变量。如果不定义变量,默认变量的数据类型是Variant格式,这样会占据大量的内存空间。

  1. 变量的几种分类: Date、String、Integer、Double、Long、Variant
  2. 定义变量: Dim lastDate As Date
  3. 多个变量同时定义: Dim lastDateStr As String, todayStr As String
  4. 变量的数据类型: Debug.Print TypeName(lastDate)
    ’ 实现打印信息的功能。其中,Debug.Print 可以输出信息(TypeName(lastDate))到立即窗口。

1.2.日期计算

  1. 今天: Debug.Print Date
  2. 昨天: Debug.Print VBA.DateAdd(“d”, -1, Date)
  3. 今天的日期格式转换为字符串: Debug.Print Format(Date, “yyyymmdd”)
    ’ 输出 20210422。或者可以使用Format(Date, “yyyy/m/d”) ,输出 2021/4/22。
  4. 计算本月一共有多少天:
    第1个步骤:计算下一个月的第一天,减掉1天就是本月的最后一天。
    第2格步骤:计算最后一天的日期是几号。
    toMonth = DateSerial(Year(Date), month(DateAdd(“m”, 1, Date)), 1) ’ toMonth 是下月的1号。
    monthDays = Day(DateAdd(“d”, -1, toMonth)) ’ 用于记录本月有几天。
  5. 计算当前日期相对整个月的时间进度情况: monthPre = Day(Date) / monthDays ’ 输出是一个小数,需要使用Double或者Long进行存放。
  6. 计算当前日期相对整个月在第几周: NowWeek = DateDiff(“ww”, DateSerial(Year(Date), month(Date), 1), Date)

1.3.复制、粘贴、清空、删除

  1. 复制
    Selection.Copy
  2. 粘贴(包括公式和内容)
    ActiveSheet.Paste
  3. 选择性粘贴
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
  4. 清空内容,不清除格式
    Selection.ClearContents
  5. 删除
    Selection.Delete Shift:=xlUp ’ 下方表格上移
    Selection.Delete Shift:=xlToLeft ’ 右方表格左移
  6. 页面显示左上角的单元格
    Range(“A1”).Select
    ActiveWindow.ScrollRow = 1 '设置当前工作表最上面显示的行号
    ActiveWindow.ScrollColumn = 1 '设置当前工作表最左边显示的列号
  7. 显示第1个的行分组,第1个的列分组
    ActiveSheet.Outline.ShowLevels RowLevels:=1
    ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1

2.进阶功能

2.1.计算相关

  1. 数据刷新,公式重算
    ActiveWorkbook.RefreshAll
    Calculate
  2. 使用公式手动计算,加快vba运行速度
    Application.Calculation = xlCalculationManual
    Application.Calculation = xlCalculationAutomatic ’ 记得切换回自动计算
    (备注:提速小方法http://blog.sina.cn/dpool/blog/s/blog_a575eb9401018pvp.html)

2.2.其他

  1. 代码报错,仍继续执行
    On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息导致代码停止运行
  2. 等待3秒后继续运行
    Application.Wait (Now + TimeValue(“0:00:03”))
  3. 清空剪贴板
    Application.CutCopyMode = False
  4. 不切换屏幕
    Application.ScreenUpdating = False
    Application.ScreenUpdating = True ’ 结束时,记得加上屏幕刷新
  5. 让错误提示不出现
    Application.EnableEvents=False ’ 让事件失效
    Application.EnableEvents=True ’ 结束时,记得加上让事件生效
excel-vba的常用功能普通功能变量定义日期计算插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入普通功能变量定义在进行vba操作前,一般需要定义变量。如果不定义变量,默认变量的数据类型是Variant格式,这样会占据大量的内存空间。变量的几种分类: Date、String、In withEvents 可选。该关键字指定varname是对象 变量 ,用于响应触发一个ActiveX对象。WithEvents只在类模块有效。使用它你可以 定义 多个独立的对象,但是不能使用该关键字创建数组,也不能与New关键字一起使用。 varname v_date = Date ' 今天,格式为:yyyy-MM-dd v_time = Now ' 此时,格式为:yyyy-MM-dd HH:mm:ss v_date2 = #"2021-06-01" '指定时间 v_date3 = CDate("2021-06-01") 日期 格式化 Format(Date, "yyyy-MM-dd") 日期 处理 对 日期 进行处理,得到想要的目标 日期 today = Date yesterday = today - 1 '先选择数字所在的一个单元格,在选择大写金额保存的一个单元格。 '&两边无空格是 公式 上的连接符,&两边有空格是 vba 上的连接符。 '带有双引号的外面必须由两重双引号,而且最内侧双引号外不能连接其他字符串。 'n = MsgBox(" 计算 剩余 日期 " & vbCrLf & "选择【重试】:选项2" & vbCrLf & "选择【忽略】:选项3", vbA bortRetryIgnore, "提示")
Boolean 数据 类型 Boolean 变量 存储为 16 位(2 个字节)的数值形式,但只能是 True 或是 False。Boolean 变量 的值显示为 True 或 False(在使用 Print 的时候),或者 #TRUE# 或 #FALSE#(在使用 Write # 的时候)。使用关键字 True 与 False 可将 Boolean 变量 赋值为这两个状态中的一个。 当转换其他的数值...
作者:iamlaosong VBA 变量 可以先 定义 后使用,也可以不 定义 直接使用。如果模块前面加了Option Explicit语句,则 变量 必须先 定义 后使用。不过,实验发现, VBA 变量 类型没有进行严格的管控,不管哪种情况, 定义 的类型和实际使用中赋值类型并没有什么关系,也就是说 定义 为integer的 变量 同样赋值字符串,反之也然。 这样的结果往往会在程序中产生歧义,导致错误的运行结果。例如
任何语言(汉语、英语)都得遵守一定的规则,机器语言也不例外, Excel VBA 编程语言也要遵守相关的语法规则,否则的话你编写的代码 计算 机是无法识别和执行的。本节开始学习 Excel VBA 编程语言的语法规则,虽然很枯燥无味但又是必须要克服的难题,过不了这一关就无法入门。 VBA 数据 类型( 数据 存储器 数据 存放类型) Excel 使用过程中,往往会出现...
Excel 的代码主要是针对 Excel 的各个对象进行操作的,因此最基础的就是 VBA 的基本语法,基本语法主要包含: VBA 变量 、常用运算和循环或分支结构。我理解的这三部分是最主要的。 所谓 变量 ,顾名思义就是可以变化的量, 变量 VBA 中是程序为存放某个临时的值而开辟的内存空间,可以指定一个 变量 名来命名该内存空间,通过 变量 名,可以重复访问该内存空间,用以存放 数据 或者读取 数据 。 ¤ 变量 声明¤