AI助力VBA,一键搞定Excel办公自动化

在日常工作中,Excel VBA(Visual Basic for Applications)是提高工作效率的强大工具,可以实现一些复杂的操作和自动化任务,减少重复劳动。例如,以下是VBA可以帮助您实现的一些常见便利操作:宏录制和自动化:录制并优化操作步骤,实现自动化流程。格式处理:自动生成工资条和工资表头,减少手动操作。数据提取:从大量数据中提取关键信息,如手机号、身份证号码等。图片处理:批量插入和调整图片大小,适应单元格布局。自定义函数:创建自定义函数,扩展Excel内置函数的功能。批量处理工作表快速在多个工作表之间执行相同的操作,如格式化、计算、或移动数据等。用户界面定制自定义Excel的用户界面,添加菜单项、工具栏按钮或创建自定义对话框等。然而,对于非技术人员而言,编写VBA代码往往是一项挑战。本文主要讲解如何运用AI工具简化这一过程,帮助用户轻松地描述需求并自动生成相应的VBA代码,从而实现办公自动化的快速部署与应用。为了充分发挥VBA的潜力,用户需要具备一定的编程知识。对于初学者,我们将先学习了解Excel宏,然后利用AI工具,如文心一言、Kimi、通义千问等帮助理解VBA编程的基础语法知识。通过实际案例,展示如何使用AI工具实现“成绩单”的制作,以及如何对成绩表进行“一键格式化与合并”的批量处理操作,以此加深对VBA的理解和应用。AI助力VBA,一键搞定Excel办公自动化

1  Exce 宏

Excel中的宏是一系列编程指令或脚本,它可以记录和执行一系列在Excel中进行的操作。这些操作可以包括数据输入、公式计算、格式设置、图表创建等。通过录制这些操作,用户可以创建一个宏,并为其指定一个快捷键或按钮,然后在需要时反复运行该宏,可以减少重复劳动,并定制Excel以满足特定需求。这对于不熟悉编程但希望提高效率的用户来说非常有用。  假如我们需要把图1中的“学生成绩表”制作成图2所示的“成绩单”。如果手动完成这个任务,我们需要打开“学生成绩表”文件,选择并复制第1行标题,将复制的单元格插入到第2条成绩记录行的前面,然后重复这个过程。AI助力VBA,一键搞定Excel办公自动化图1 学生成绩表AI助力VBA,一键搞定Excel办公自动化图2 成绩单如果要处理大量的数据,就需要不断手动重复以上动作,花费许多时间。这时,我们就可以使用Excel的宏功能来帮助解决问题。案例一:手动录制宏下面,我们在Excel中录制一段手动复制“学生成绩表”表头的操作,步骤如下:(1)打开Excel:首先打开想要录制宏的Excel文件。(2)启用宏功能:在Excel中,宏功能默认是禁用的,因为宏可能包含恶意代码。要启用宏,需要更改Excel的信任中心设置。点击“文件”选项卡,然后选择“选项”。在Excel选项窗口中,点击“信任中心”,再点击“信任中心设置”。在信任中心设置窗口中,选择“宏设置”,然后选择“启用所有宏”或“禁用所有宏(不推荐,可能会阻止一些有用的宏运行)”,最后点击“确定”保存设置。   3)启用“开发工具”选项卡:如果没有“开发工具”选项卡,请单击“文件”>“选项”,在弹出的“Excel选项”对话框右侧的“自定义功能区”列表中选择“所有选项卡”,然后在“主选项卡”中选中“开发工具”选项卡,如图3所示。AI助力VBA,一键搞定Excel办公自动化图3 启用“开发工具”选项卡(4)录制宏:         首先,定位到“学生成绩表”中表头所在的第1行的“A1”单元格,然后单击“开发工具”菜单,在“代码”区域中,单击“使用相对引用”后,再单击“录制宏”按钮,弹出“录制宏”对话框,在“宏名”中输入“添加成绩单表头”,单击“确定”按钮,如图4所示。AI助力VBA,一键搞定Excel办公自动化图4 录制“添加成绩单表头”宏    接下来,选中“学生成绩表”中的A1:I1区域后单击鼠标右键,从弹出的菜单中选择“复制”,然后在“学生成绩表”中的第2条成绩记录行(学号为2020010002)上单击鼠标右键,从弹出的菜单中选择“插入复制的单元格”,在弹出的“插入”对话框中选择“活动单元格下移”,然后单击“确定”按钮,如图5所示。AI助力VBA,一键搞定Excel办公自动化图5 插入复制的单元格继续单击A3单元格,然后单击“停止录制”按钮。(5)运行宏:录制完成后,单击“开发工具”>“代码”>“宏”,弹出“宏”对话框,如图6所示。选择宏名为“添加成绩单表头”,然后多次单击“执行”按钮,即可快速完成表头的添加。      AI助力VBA,一键搞定Excel办公自动化    图6 执行宏对话框      如果每次单击“执行”命令比较麻烦,还可以给宏指定一个快捷键。在如图6所示的“宏”对话框中,单击“选项”按钮,弹出“宏选项”对话框,如图7所示。在该对话框中给宏指定一个唯一的快捷键(这里是Ctrl + a),以后就可以使用这个快捷键来执行指定的宏。AI助力VBA,一键搞定Excel办公自动化图7 给宏指定快捷键有时快捷键太多,不方便记,还可以将宏指定给窗体控件。单击“开发工具”菜单,然后在“控件”区域单击“插入”>“表单控件”>“按钮(窗体控件)”,在Excel表格中绘制一个矩形后,弹出“指定宏”对话框,如图8所示。在该对话框中选择宏名为“添加成绩单表头”,然后单击“确定”按钮。这样就把宏指定给了绘制的按钮。AI助力VBA,一键搞定Excel办公自动化图8 给按钮指定宏       可以在绘制的按钮上单击鼠标右键,从弹出的菜单中选择“编辑文字”来修改按钮的名称。也可以选择“设置控件格式”,修改控件的字体、颜色等。比如修改为“添加成绩单表头”,并点击按钮,执行宏,如图9所示。AI助力VBA,一键搞定Excel办公自动化图9 修改按钮并执行宏请注意,录制的宏是按照用户执行操作的顺序和速度来记录的,所以需确保在录制过程中的操作是准确无误的。如果录制了错误的操作,需要重新录制宏或从VBA编辑器中手动编辑代码以更正错误。(6)保存宏:.xlsm格式文件是Excel中用于保存包含宏代码的工作簿的文件格式。在录制完成宏后,如果希望在以后打开文件时仍然能够使用这些宏,那么需要将文件保存为.xlsm格式。这样,当用户打开该文件时,可以选择启用宏来执行自动化任务和其他自定义功能。

2  使用VBA优化Excel宏

在“添加成绩单表头”的宏操作中,我们通过快捷键或是单击按钮就可以执行重复的步骤,以提升效率。但如果要执行上万条或是更多的数据,以及完成更复杂的任务,可能无法通过录制宏来实现。这时,我们可以借助VBA来完成。VBA(Visual Basic for Applications)是Microsoft开发的一种宏语言,它是Visual Basic的一种应用程序版本,主要用于Microsoft Office应用程序,如Excel、Word、Access等。VBA允许开发者通过编写代码来扩展Office应用程序的功能,实现自动化和自定义操作。   当录制一个宏时,Excel实际上是在后台生成VBA代码来模拟用户的操作。这些生成的代码可以在VBA编辑器中查看和编辑。但宏通常是用户通过录制功能创建的简单任务,而VBA代码则是由开发人员编写的高级自动化脚本。  我们可以单击“开发工具”菜单,然后在“代码”区域中单击“宏”,在弹出的对话框中,选择相应的“宏”,然后单击“编辑”按钮,在弹出的Microsoft Visual Basic for Applications窗口中对上面录制的宏进行优化。如图10所示。AI助力VBA,一键搞定Excel办公自动化图10 优化宏首先,我们在第一行代码“Sub 添加成绩单表头()”后增加两行代码,然后在End Sub前增加Next,修改后的VBA代码,如图11所示。修改完后保存并关闭窗口,返回Excel工作表界面。之后选中A1单元格,重新执行宏,即可完成“添加成绩单表头”任务,效果如图12所示。AI助力VBA,一键搞定Excel办公自动化图11 修改后的VBA代码AI助力VBA,一键搞定Excel办公自动化图12 优化宏代码后生成的成绩单 由上述案例可以看到,Excel宏是基于VBA代码构建的自动化任务,但VBA本身是一种更强大、更灵活的编程语言,不仅可以创建更复杂的Excel自动化解决方案,还可以培养编程思维,从而更好地适应数字化时代。

3   利用AI工具掌握VBA基础语法

以前的编程学习路径一般是先学习基础语法,再学习示例,然后搜索代码,模仿修改,再独立编写代码。有了AI工具辅助编程后,编程学习路径可以是先学习语法,然后描述需求,AI工具生成代码,再调试或直接运行。对于新手来说,编程难度大幅下降;对于有经验的用户来说,也可以提高编程效率。因此,在学习任何一门编程语言时,首先需要掌握基础的语法知识,VBA也不例外。理解VBA的语法基础,如数据类型、变量与常量、运算符、控制结构等,能够让我们清晰地知道如何有效地组织和控制代码,以解决实际问题。只有具备这些基础知识,才能逐步构建更复杂的逻辑,编写出结构良好、功能强大的程序。(1)VBA开发环境VBA开发环境通常被称为Visual Basic Editor(VBE),它是Excel等Office应用程序的一部分。要访问VBE,用户可以在Excel中按下Alt+F11快捷键,或者通过“开发工具”选项卡中的“Visual Basic”按钮进入。如图10所示,VBA开发环境的主要组成部分包括:菜单栏和工具栏:提供常用的命令和工具,如文件操作、编辑、调试等。工程资源管理器:显示当前打开的所有VBA项目(也称为工程)和它们包含的对象,如工作表、模块、用户窗体等。用户可以在这里添加、删除或重命名对象。代码窗口:用于编写和查看VBA代码的窗口。用户可以在这里输入、编辑和调试代码。代码窗口通常分为两个区域:代码编辑区和立即窗口。代码编辑区用于编写和显示代码,而立即窗口可以用于执行单行代码和查看代码的输出结果。属性窗口:显示当前选定对象的属性及其值。用户可以在这里查询和修改对象的属性。   (2)创建一个VBA程序1)访问VBA编辑器  通过按Alt + F11快捷键,或者在Excel的“开发者”选项卡中点击“Visual Basic”按钮来打开VBA编辑器。2)插入模块 在编写VBA程序前,需要先添加一个模块来保存VBA程序。可以在VBE环境中单击“插入”>“模块”来实现,如图13所示。也可以在项目中的Excel对象上单击右键,在弹出的菜单中选择“插入”>“模块”,如图14所示。AI助力VBA,一键搞定Excel办公自动化图13 菜单方式插入模块    AI助力VBA,一键搞定Excel办公自动化图14 右键方式插入模块3)编写代码 在新插入的模块中,单击空白的代码窗口,写入一个测试代码。如图15所示。这段代码定义了一个名为HelloWorld的过程(Sub),当这个过程被调用时,它会显示一个包含文本“Hello, World! ”的消息框。AI助力VBA,一键搞定Excel办公自动化图15 VBA测试代码4)运行代码    按F5键;或单击“运行”>“运行子过程/用户窗体”,或单击工具栏中的“运行子过程/用户窗体”按钮,运行VBA程序;或回到Excel界面,按Alt + F8打开“宏”对话框,选择HelloWorld宏,然后点击“执行”。运行结果如图16所示。AI助力VBA,一键搞定Excel办公自动化图16 VBA运行结果最后,保存并关闭VBA编辑器。(3)VBA基础语法知识1)数据类型在程序设计语言中,数据有不同的类型。例如,一个人的姓名可以用字符串类型存储,年龄可以使用整型存储。不同的数据类型有不同的存储方式和运算规则。在Excel VBA中选择适当的数据类型可以确保正确地存储、处理和使用数据。我们可以利用文心一言辅助用户学习VBA的数据类型知识。可以这样提问:    你是一位资深Excel大师,请详细说说Excel VBA中常见的数据类型有哪些?并举1-2个例子说明。文心一言给出了VBA中常用的数据类型以及用途说明和示例。这里只列举部分内容,如图17所示。AI助力VBA,一键搞定Excel办公自动化图17(1)VBA数据类型AI助力VBA,一键搞定Excel办公自动化图17(2)VBA数据类型 2)变量和常量       常量和变量是用于存储数据的重要元素。它们帮助你在编写代码时跟踪和管理信息。我们通过向文心一言提问,得到Excel VBA变量与常量的说明以及示例,如图18所示。你是一位资深Excel大师,请详细说说Excel VBA中什么是变量和常量,并举1-2个例子说明。AI助力VBA,一键搞定Excel办公自动化18(1)VBA中变量和常量AI助力VBA,一键搞定Excel办公自动化图18(2)VBA中变量和常量图3)VBA对象在Excel VBA中,对象是Excel应用程序的组成部分,代表了Excel中的各个实体,如工作簿、工作表、单元格、图表等。VBA通过对象模型(Object Model)来组织和访问这些对象。对象模型是一个层次结构,其中包含了不同种类的对象,以及这些对象之间的关系。Excel VBA中的常用对象有哪些呢?可以这样向文心一言提问:   你是一位资深Excel大师,请详细说说Excel VBA中的常用对象有哪些?并举例说明。以表格形式输出。文心一言给出了VBA的常用对象及其作用和示例,如图19所示。AI助力VBA,一键搞定Excel办公自动化图19(1)Excel VBA常用对象AI助力VBA,一键搞定Excel办公自动化图19(2)Excel VBA常用对象在Excel VBA中,对象的属性定义了对象的特征或状态。这些属性可以是大小、颜色、位置,或者是关于对象行为的其他方面,如是否激活或可见。通过修改这些属性,可以改变对象的外观和行为。例如,一个单元格(Cell)对象可能有背景颜色、字体、值等属性。用户可以通过代码来设置或获取这些属性的值。如图20所示,通过向文心一言提问,我们可以学习VBA对象属性的使用方法。     你是一位Excel专家,请举例说明如何使用Excel VBA对象属性。AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化 图20 Excel VBA对象属性的使用  在Excel VBA中,对象的方法允许用户通过编程方式控制Excel的各个组件,如工作簿(Workbooks)、工作表(Worksheets)、单元格(Cells)等。如图21所示,通过向文心一言提问,我们可以学习VBA对象方法的使用。AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化   图21 Excel VBA对象方法的使用4)VBA中的运算符运算符是用于执行特定数学或逻辑计算的符号或字符。不同的数据类型可以使用不同的运算符进行运算。如图22所示,通过向文心一言提问,我们可以学习VBA中的各类运算符。我们可以这样提问:   你是一位资深Excel大师,你需要总结Excel VBA中的运算符知识。任务要求:请详细阐述Excel VBA中各类运算符的作用和示例,以表格形式输出。表格包含三列,分别列出运算符、作用以及示例。AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图22  常见运算符     5)VBA中的控制语句控制语句用于控制代码的执行流程,包括条件判断、循环、错误处理等。如图23所示,通过向文心一言提问,我们可以学习VBA中的各类控制语句。我们可以这样提问:你是一位资深Excel大师,你需要总结Excel VBA中的控制语句知识。任务要求:请详细阐述Excel VBA中有哪些控制语句以及各自的作用,以表格形式输出。表格包含三列,分别列出控制语句、作用以及语法结构。 AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图23 Excel VBA中的控制语句及语法结构此外,还可以针对性地向文心一言提问,让文心一言给出一个控制语句具体的用法示例,以便读者更好地理解和应用。6)VBA中的过程在Excel VBA中,过程(Procedure)是一段为了完成特定任务而编写的代码。过程可以是子程序(Sub)、函数(Function)或事件处理程序(Event Handler)。每个过程都由一个名称、参数列表和代码块组成。子程序(Sub):子程序是一种不返回任何值的过程,它主要用于执行一系列操作。子程序使用Sub关键字开始,并以End Sub结束。它们通常用于执行一些不需要返回值的任务,比如更新用户界面、修改数据或执行一系列的操作。   函数(Function):函数是一种返回特定值的过程。与子程序不同,函数使用Function关键字开始,并以End Function结束。函数的返回值类型必须在函数声明时指定。事件处理程序(Event Handler):事件处理程序是响应特定事件(如单击按钮、更改单元格值等)而自动执行的过程。它们通常附加到工作表、工作簿或控件上。过程在Excel VBA中起着至关重要的作用,它们通过将代码分解为不同的过程,可以使代码更加清晰、易于理解和维护。每个过程都可以独立地执行特定的任务,这使得代码更加模块化,更易于重用和修改。通过创建自定义过程,用户可以扩展Excel的内置功能,以满足特定的需求和工作流程。这些过程可以像内置函数一样在Excel工作表中使用,从而增强Excel的功能性。如果想更深入了解,可以这样向文心一言提问:你是一位资深Excel大师,请详细阐述一下VBA中的常见过程及其简单使用示例。AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图24 常见过程类型图24所示为VBA中常见的过程类型及其简单使用示例。如果还想了解其他过程,可以继续向文心一言追问。      知识扩展:同一个问题,使用同一个AI工具提问,或使用不同的AI工具提问,可能会收到不同的答案,这是由于多种因素综合作用的结果。比如可能训练数据不同、算法架构不同、上下文理解、随机性等等。虽然AI工具技术在自然语言处理方面取得了很大的进展,但是它仍然存在一定的局限性和不确定性。因此,在使用AI工具 技术获取答案时,我们需要保持一定的谨慎和判断力,同时也需要不断地完善和优化技术本身,以提高答案的准确性和可靠性。案例二:一键完成多表格式化与成绩汇总现在需要编写一个VBA脚本,实现如下功能:首先对“学生成绩表”Excel文件中的4个工作表A班、B班、C班和D班进行格式化操作;然后再把4个班的成绩合并到一个“成绩汇总”的工作表中。具体实现步骤如下:【步骤1】格式化4个工作表我们可以这样提问你是一位资深的Excel数据大师,在指定工作簿中有4个工作表,请分别对每个工作表进行格式化操作。具体要求是:A1:I13全部添加边框,外边框采用双实线,所有数据全部居中对齐。A1:I1标题行采用粗体。请写出VBA代码。 文心一言给出了详细的操作步骤和代码,如图25所示。将代码复制到VBA编辑器中进行调试。如果运行过程出现错误,请向文心一言反馈错误,或修改提问内容。AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图25 格式化多个工作表的VBA代码如果想了解以上代码具体的含义,还可以请文心一言解释代码的含义。如图26所示。            AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图26 AI工具解释代码的含义为了方便运行,还可以将宏指定到窗体控件或形状。最后,执行格式化表格之前的效果如图27所示。格式化表格之后如图28所示。AI助力VBA,一键搞定Excel办公自动化图27 格式化多个工作表之前   AI助力VBA,一键搞定Excel办公自动化图28 格式化多个工作表之后【步骤2】合并成绩表。如图28所示,我们已经完成了多个工作表的批量格式化操作。接下来再把4个班的成绩合并到一个“成绩汇总”的工作表中。我们可以这样提问:你是一位资深的Excel数据大师,在指定工作簿中有4个工作表,请把它们合并到一个名为“成绩汇总”的工作表中,请写出VBA代码。      如图29所示。将代码复制到模块后运行,出现错误提示。仔细检查发现文心一言给出的代码中使用的是默认的工作表名称。         AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图29 合并成绩表的初始代码我们继续向文心一言反馈,要求重新写出VBA代码,如图30所示。4个工作表的名字分别是“A班”、“B班”、“C班”、“D班”,请认真检查,重新写出VBA代码。AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图30 修改工作表名称将修改后的代码复制到模块,运行后发现合并后的工作表首行是一个空白行。并且把所有工作表包括标题行在内的数据都合并到了新工作表中,我们继续向文心一言反馈,要求重新输出代码,如图31所示。     为什么合并后的工作表最前面有一个空白行呢?4个工作表都含有标题行,请确保最终成绩汇总表只有一个标题行。请认真检查,重新写出VBA代码。 AI助力VBA,一键搞定Excel办公自动化AI助力VBA,一键搞定Excel办公自动化图31 保留一个标题行最后,将代码复制到模块并运行,测试结果如图32所示。AI助力VBA,一键搞定Excel办公自动化图32 合并成绩效果图知识扩展:在使用AI工具时,用户需要清楚地描述自己的需求和问题,以便AI工具能够更好地理解并提供准确的建议和解决方案。总的来说,AI工具可以作为一个辅助工具来帮助你学习、改进和调试 VBA 代码,但它不能替代实际的编程经验和知识。真正的学习和进步还需要你自己的努力和实践。   

版权声明:lida 发表于 2024年8月9日 pm4:45。
转载请注明:AI助力VBA,一键搞定Excel办公自动化 | ChatGPT资源导航

相关文章