仍在依靠手动去进行复制粘贴,以及反复地设置格式吗?Excel VBA能够助你脱离此类枯燥乏味的操作。然而针对刚开始学习的人而言,宏、模块、过程这三个词汇常常会使得人感觉迷惑不解。梳理清楚它们之间的关系,乃是掌握自动化办公的首要步骤。
宏就是你的操作录像机
在VBA的天地中,宏属于入门的基石。你能够将它设想成一台录像设备,当开启录制按键之后,你于Excel里的每一回操作都会被记载下来,进而产生一串代码。哪怕是全然不晓得编程,借助这样的途径也能够使繁杂的重复性工作经由一键达成。
例如,你每日都得将报表标题设为加粗状态、变为蓝色,点击“开发工具”内的“录制宏”,随意取个名称,像“美化标题”,接着按正常流程操作一回:选定标题行,点击加粗按钮,更改颜色,操作完毕后停止录制,此后每次运行此宏,Excel便会自行帮你完成这一系列动作。
模块是装代码的抽屉柜
Sub ApplyFormat()
' ApplyFormat 宏
' 快捷键: Ctrl+Shift+F
Range("A1:G1").Select
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.249977111117893
.PatternTintAndShade = 0
End With
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End Sub
在VBA里,模块所起到的作用是收纳整理,当你录制的宏数量逐渐增多,或者自己动手编写的代码数量增多后,两者就会混杂在一起,此时就需要模块这个如同“抽屉柜”般的存在,将不同功能的代码按照类别放置妥当。
在实际的操作情形当中,通过按下 Alt Key 与 F11 这两个按键从而进入到 VBA 编辑器,接着以右键动作点击位于左侧的 VBAProject,随后选择“插入” 选项并进一步选择“模块”,如此便能够新建出一个模块。你能够将之前所录制的“美化标题”的宏代码拖动放置到这个刚刚新建的模块内部,之后为它去更改一个便于记忆的名称,像是“格式化模块”。如此一来在下次对代码进行修改之际便能够迅速地找到它。
过程是真正干活的代码块
过程是被书写于模块里的具体代码呀,即宏的实际内容。它存在两者类型,一种称作子过程,仅仅负责干活却不返回东西,就像刚才所讲的美化标题操作;另一种名为函数过程,它在计算完成后会返回一个结果,例如计算出总和之后再进行打折操作。
Option Explicit ' 强制变量声明,提高代码安全性
Public Sub ApplyFormat()
Dim headerRange As Range
Set headerRange = Range("A1:G1")
headerRange.Font.Bold = True
With headerRange.Interior
.Pattern = xlSolid
.ThemeColor = xlThemeColorAccent6
End With
headerRange.Font.ThemeColor = xlThemeColorDark1
End Sub
给你举个例子,去写一个函数过程,当你输入一段数据区域以及折扣率的时候。它便能够计算出折后的总价。接着把这个代码放置到“计算模块”之中。往后只要是在单元格里面直接输入等于折后价括号里面是A2 冒号 A10逗号然后空一格再输入0.2 这样的形式。就能够获取到相应的结果。这就如同使用Excel自带的SUM函数那般便利。
三者如何组成一个整体
宏、模块、过程的关系分明体现为,多个过程能够存放于同一个模块之中,过程乃宏的具体代码呈现。当你实施操作点击运行宏之际,实质上是于其一模块里头寻觅获取到与之对应的子过程,进而予以执行它。
这般结构恰似你所居住小区一般:经过情形是具体的房屋,模块在此处为这一幢楼,宏呢便是你友人前来串门之际所按的那个门铃。领会了这个,那往后编写代码便不会四处繁杂放置,想要变更某个功能之时也能够径直寻觅到所在之处,项目结构清晰明了,一目了然。
Public Function DiscountedSum(rng As Range, discount As Double) As Double
Dim total As Double
total = Application.WorksheetFunction.Sum(rng)
DiscountedSum = total * (1 - discount)
End Function
云端办公的新选择
现今,好多人运用网页版Excel或者在线表格,VBA于浏览器内无法运行起来。然而,有了诸如SpreadJS这般的纯前端表格控件,便可在网页当中达成类似Excel的功能,借由JavaScript代码去替代VBA。
好比同样去进行标题加粗以及改颜色的操作,运用SpreadJS写一个JS函数,直接获取单元格范围,设置样式。代码相较于VBA更为简洁,并且能直接于浏览器之内运行下来,依旧支持多人同时展开编辑。该套逻辑与VBA彼此完全相通,只是将编程语言替换成了JavaScript。
从桌面到网页的技能迁移
在掌握VBA的核心思想之后,转向网页展开开发并非困难之事。由VBA里的子过程所对应的,是JavaScript里的函数,而像工作表变动这类VBA的事件,是对应着SpreadJS里的SheetChanged事件的。你能够借助事件触发来实现自动计算或者格式化。
你不会被Excel软件束缚,因为存在这样一种技能延伸。在网页上开展报表自动化,其部署更为便利,手机和平板均可使用。此外,相对于VBA,JavaScript具备更丰富的资源与社区,学会之后只会有益处。
你有无碰到那种特别想要借助VBA实现自动化然而却不清楚该从何处着手的工作情形呢,欢迎于评论区域留言讲述一下你的需求,我会挑选典型的问题来帮大伙剖析思路。要是觉得文章具有价值的话,可别忘了点个赞并分享给有需要的友人。
// 初始化 SpreadJS 控件
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("spreadContainer"));
var sheet = spread.getActiveSheet();
// 定义一个 JS 函数替换 VBA Sub
function applyFormat(row, col, width) {
var range = sheet.getRange(row, col, 1, width); // 如 A1:G1 (row=0, col=0, width=7)
range.font("bold 12pt Arial"); // 加粗字体
range.backColor("#DDEBF7"); // 设置填充色
range.foreColor("#000000"); // 设置字体颜色
sheet.repaint(); // 刷新视图
}
// 调用函数
applyFormat(0, 0, 7);



还没有评论,来说两句吧...