中企动力 > 商学院 > excel宏vba
  • ?

    Excel VBA代码求1到100相加的和

    梦芩

    展开

    朋友,如果您喜欢,想第一时间得到我的有用信息,请务必关注我。

    关注我的理由:

    第一时间收到我的有用知识,各种特技随时可得,受益终生。

    尤其是VBA代码类的文章,别的地方是找不到的,原创不容错过。

    一切文章均属原创,宇宙情怀欢迎您的关注收藏评论点赞哦。

    在小学的时候从1加到100求和是多少,那么我们使用VBA代码通过EXCEL如何快速的求和呢?

    1.启用宏内容,安全性低,启用所有宏。

    2.在代码编辑器内插入模块插入计算的代码,使用到的是FOR NEXT语句。

    3.插入表单控件,并指定到求和的宏。

    4.点击控件运行代码就可以在单元格内看到最终的计算结果了,很快的。

    5.工作簿保存为XLSM启用宏的工作簿即可。

    分享代码如下:

    Sub 求和1到100()

    Dim i As Integer

    Dim j As Integer

    i = 0

    For j = 1 To 100

    i = i + j

    Next

    Range("F1") = i

    End Sub

  • ?

    EXCEL2007 vba编程入门(实例对话框)

    Timothy

    展开

    1、新建EXCEL2007空白表格。xlsx格式的,将VBA工具栏调出。如图1.1

    2、点击“开发工具”然后单击插入,在下拉的菜单的表单控件里面选择“按钮”,如图2.1

    3、画个方框,会弹出一个对话框“指定宏”,单击"新建"按钮,这样就会进入后台的程序书写界面,进入以后,程序的头和尾已经帮你写好了,如图3.1,你只需要在中间写入一句程序“ MsgBox("hello world") ”。

    4、为了保证宏正常运行,要在EXCEL的设置中进行启用宏操作。在“开发工具-宏安全性-宏设置:启用所有宏和勾选信任对VBA工程对象模型的访问”。如图4.1

    5、最后点击另存为“启用宏的工作簿”的xlsm文件,然后退出程序界面。

  • ?

    excel函数应用:宏表函数如此简单快捷

    段苡

    展开

    最近收到在某快递上班的周同学问题求助,主要是在计算包裹的体积时遇到了些麻烦事。

    下表是周同学近期整理的快递包裹尺寸数据,其中重要一项工作就是通过长*宽*高来计算出包裹的体积。

    周同学表示其实自己也能做出来,只不过是方法比较笨拙原始。

    一、分列数据计算体积

    周同学自己使用的方式是分列,由于长宽高 3个数字均由星号隔开,所以使用分列的方式将数字分别放置在三个单元格中即可完成计算体积。

    操作步骤

    1、选中G列数据后单击【数据】选项卡中的【分列】

    2、出现分列向导对话框,我们一共需要3步完成数据分列。第一步是选择分列的方式:【分隔符号】、【固定宽度】,周同学的表中有星号分隔数据,可以使用分隔符号分列,所以我们选择【分隔符号】后单击【确定】。

    注:【分隔符号】方式分列主要运用于有明显字符隔开的情况,【固定宽度】主要运用于无字符隔开或者无明显规律的情况手工设置分列字符的宽度。

    3、单击【下一步】进入文本分列向导第二步,在这里我们可以选择分隔符号,可以是TAB键、分号、逗号、空格、其他自定义。由于默认选项中没有星号,所以我们勾选其他,然后输入星号即可。

    当输入完成后,下方数据预览可以看到数据中的星号字符变成了竖线,已经完成了分列。

    4、单击【下一步】,列数据格式为常规,直接单击【完成】即可。

    此时出现提示:此处已有数据。是否替换它?

    由于分列前G列内容包含长宽高尺寸数据,分列后,G列被替换成“长”。

    直接单击【确定】,可看到分列结果。

    5、根据长宽高轻松计算出包裹体积。

    周同学觉得这样还不是最好的方案,因为表格列数是固定的,而且数据都已经和其他表格相互关联,分列数据后插入了2个新列,那数据岂不是都乱了吗?

    二、提取数字计算体积

    我们来试试用文本函数来解决。(前方高能,这里只需要了解一下就可以了,主要是为了突出第三种方式的简单)

    既然我们要计算包裹的体积,那么我们只需要将G列中的长宽高数据分别提取出来然后相乘即可。

    提取长度数据:

    函数公式:

    =LEFT(G2,FIND("*",G2,1)-1)

    提取宽度数据:

    函数公式:

    =MID(G2,FIND("*",G2,1)+1,FIND("-",SUBSTITUTE(G2,"*","-",2))-1-FIND("*",G2,1))

    提取高度数据:

    函数公式:

    =RIGHT(G2,LEN(G2)-FIND("-",SUBSTITUTE(G2,"*","-",2),1))

    最后我们将3个函数公式合并嵌套统计得出包裹的体积。

    好了,我知道上方的函数公式太复杂,大家都不想学,所以也没给大家做过多的函数解析,简单粗暴,下面给大家隆重推荐一个最简单的方法:宏表函数。

    三、EVALUATE函数计算体积

    首先我们了解一下EVALUATE的含义,其实EVALUATE是宏表函数,宏表函数又称为Excel4.0版函数,需要通过定义名称(并启用宏)或在宏表中使用,其中多数函数功能已逐步被内置函数和VBA功能所替代,但是你一分钟学不会VBA,却可以学会宏表函数。

    下面我们开始操作演示:

    1、选中G列,单击【公式】选项中的【名称管理器】

    弹出如下所示对话框:

    2、单击【新建】,在【新建名称】对话框中输入名称为TJ,应用位置输入函数公式

    =EVALUATE(Sheet1!$G$2:$G$44)/1000/1000( 备注:由于之前单位是厘米,我要将统计结果转化为立方米,所以需要除1000000)后单击【确定】。最后关闭名称管理器。

    公式解析:

    由于G列数据是长*宽*高,*在excel中就是乘法的意思,G列的数据本身就可以看作一个公式,我们只需要得到这个公式结果就可以啦,而EVALUATE的功能就是得到单元格内公式的值,所以在上图中,大家会发现,EVALUATE函数中的参数就只有一个数据区域。

    3、见证奇迹的时刻到了。在H2单元格中输入TJ两个字母就能快速得到体积信息啦!

    这种即简单又快捷还不用辅助列的方式是不是很棒!简直是3全其美!周同学的问题终于有了完美的解决方案。

    说真的,大家有没有发现宏表函数在解决很多问题的时候都非常简单快捷?这篇文章只是一个引子,下次文章将给大家专门介绍宏表函数!

    ****部落窝教育-excel宏表函数****

    原创:龚春光/部落窝教育(未经同意,请勿转载)

  • ?

    Excel学习之VBA(一)

    阎雨灵

    展开

    1.如何将【开发工具】选项卡添加到Excel页面

    默认情况下,因为大多数人并不经常用到【开发工具】选项卡,所以微软将其隐藏了起来,打开方式如下:

    1.1.office2010及其以上版本:

    (1).【文件】===》【选项】===》【自定义功能区】===》【主选项卡】===》在功能区的“复选 框”中找到【开发工具】选项,并将其选中

    (2).打开Excel后,在默认界面下,将鼠标移动至任意“选项卡”所在区域,单击右键选择【自定义功能区】===》 【主选项卡】===》在功能区的“复选框”中找到【开发工具】选项,并将其选中

    1.2.office2007版:

    点击【office】===》【Excel选项】===》【常用】===》在功能区找到【开发工具】复选框并将其选中

    说明:如果上述方法无法实现,说明office软件安装过程中没有安装VBA如果仍要使用VBA,建议重新安装office

    2.允许Excel运行VBA

    默认情况下,为避免VBA产生宏病毒污染破坏电脑运行,office禁止了VBA代码的正常运行,要想正常运行VBA,需要先解除禁止,如下:

    2.1.office2010及其以上版本:

    【开发工具】选项卡===》宏安全性===》【宏设置】===》将【启用所有宏】选中===》【确定】===》重启EXcel

    2.2. office2007版:

    【工具】===》【宏】===》【安全性】===》【宏设置】===》将【启用所有宏】选中===》【确定】===》重启EXcel

    3.打开VBE(Visual Basic Editor)

    3.1.快捷键:Alt + F11

    3.2.手动方式:【开发工具】===》【Visual Basic】===》【VBE界面】

    4.开始编写VBA

    和大多数的IDE一样,VBE分为基本的【菜单栏】,【工具栏】,【工程资源管理器】,【属性区域】,【代码区域】以及【状态栏】,一般编写的代码称为“宏”,多个宏又可以组合成一个“模块”,但在【工程资源管理器】中默认情况下是没有模块的,需要通过录制宏或手动插入模块,如下

    4.1. 手动插入模块

    在【工程资源管理器】中的空白区域或选中单击右键===》【添加】===》【模块】

    4.2录制宏

    【开发工具】===》【录制宏】===》命名===》【确定】===》完成一系列表格操作后===》【停止录制】===》【宏】===》点击录制的宏===》【编辑】,即可看到VBE中新增了一个模块

  • ?

    Excel中的VBA代码你可以写出来,可是你真的会优化代码吗?

    恐龙王

    展开

    我们很多时候在用Excel VBA去实现某一个功能的时候,也许会用到很多行的代码去实现我们最终要的结果。

    可是有时候你殊不知,有些代码是经过录制宏产生的,或者语句繁琐,变量不正确从而造成你所写的程序运行的时间非常久,或者造成计算机的CPU使用率达到100%,严重可导致系统崩溃发生。

    但是这样的结果显而易见,并不是我们想要的结果。我们想要的是一个可靠的,高效率的,简化操作的,提高劳工效率,减少错误率的,适应性强的程序。

    所以我们不得不寻求更好的方法去改善,去优化代码,以寻求高效率完成我们的工作。

    下面我们重点和大家分享一下,怎么去优化我们的代码:

    1.关闭屏幕刷新,速度可以提升30%的速度。所以大家在写完代码的时候,不妨在我们程序最开始加上这句话,当然在程序执行完之前,也就是最后一句话的时候,你要记得将屏幕刷新打开。

    Sub test()

    Application.DisplayAlerts = False

    Cells(1, 1) = 1

    Application.DisplayAlerts = True

    End Sub

    2. 使用工作表函数,这句话的意思就是说我们某些时候,可以优先考虑Excel自带的函数去实现这个,而不是我们自己去写代码。当然效果都是一样的,但是时间可能就不是一样。

    Sub ShtFunctions()

    a.使用循环进行数据累加计算

    For i = 1 To 40000

    MySum = MySum + Cells(i, 1)

    Next

    b.直接使用工作表进行求和

    Cells(1, 1) = Application.Sum(Range("A1:A40000"))

    End Sub

    3. 使用With-End With语句,减少引用对象的寻找速度,提高程序的效率。当然这样还有一个优点,就是我们要改变引用对象的时候,只需改变一个位置即可,这样也便于后期的维护和修改。

    Sub test()

    With Range("E5").Font

    .Color = -16776961

    .Font.Bold = True

    .Name = "宋体"

    .Size = 9

    .Name = "Arial Unicode MS"

    .Size = 9

    End With

    End Sub

    4.数据类型的正确选用,这个也是非常关键的。这个就好像你去打水喝,正确的应该是拿杯子过去,但是你拿着一个很大的桶去接水喝,当然都可以完成喝水这个动作,但是明显就可以看出拿桶的那个人选择就有问题。其实在我的Excel中处理数据的能力也是不一样的,处理速度最快的是long>integer>byte>Single>Double>Currency。需要注意的是,如果我们不定义变量,那么系统默认为Variant类型,当我定义合适,速度就会有提升,所以每次我们千万记得要选择最合适自己的啦!

    5.使用数组,数组和字典是VBA的核心功能,所有在可以使用数组的时候,千万记得使用数组。在某些时候,在使用数组和不使用数组对比下,速度可能相差100倍。尽量减少变量的使用,增加数组和字典的配套使用。还有就是多使用动态的数据,少使用静态的数据,数组的Redim和Preserve要常记得。

    6.多清除对象的缓存,比如 Set d = Nothing,这句话的意思就是卸除对象的引用。这样也可以稍微加快一点执行的速度。另外我们可以通过减少循环的次数,减少类模块的使用,减少模块的使用,减少我们语句中的激活的次数,或者寻找更优质效率更高的代码。

    以上就是自己在学习VBA的时候,自己的一点点优化代码的一点点方法,可能还有其他的更好的优化只能慢慢去了解去学习,慢慢积累。虽然Excel VBA并不万能的,但是能帮助我们提高工作效率,就已经足够让你我欣慰。与君共勉之!

    PS:学习的苦难需要我们主动面对,生活的苦难你躺着它自己主动就过来啦!与君共勉!!!

    以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!

    唯有不断学习,才能不被淘汰!

    Excel中每一个方法都有特定的用途,不是他们没有用处,只是你不了解或者暂时用不着,建议你收藏起来,万一哪天用着呢?

  • ?

    Win10系统下启用Excel2016宏命令的方法

    落斜阳

    展开

    因为Win10系统安全性比较高,原来在XP轻松运行的Excel宏都被禁用,显示结果都是未注册,没有权限无法加载之类的警告。

    这个问题影响了很多程序软件功能的调用,连CATIA都无法启用自带的Excel宏。小编研究了半天才弄通了关键。首先打开系统盘以下目录,C:\Program Files (x86)\Common Files\Microsoft Shared\VBA

    打开VBA6文件夹,将里面的文件VBE6EXT.OLB复制到C:\Program Files\Common Files\microsoft shared下的VBA7.1文件夹里面。

    有些同学不知道这个简便方法,还要到网上专门下载VBE6EXT.OLB文件。其实Program Files (x86)本身就有的。直接复制过去即可。另外Excel2016一定要以管理员身份运行。

    一般接下来还要设置下宏安全性:

    在弹出的窗口中依次点击“信任中心”-“信任中心设置”-“宏设置”-“启用所有宏”即可。

  • ?

    自学VBA,编写自己的第一个VBA工具,录制宏

    沉沦

    展开

    本节目标是让每个人能自己编写第一个VBA程序,先来看看几个前置条件。

    1. Excel运行宏代码的时候需要在Excel中设置启动宏,如何开启请查看下图。

    2. 宏代码只能保持在.xls或者xlsm格式的文件中,所以在编写完成后保存文件的时候一定记住选择.xls/.xlsm格式,否则你花半天写大代码都不翼而飞了。

    3. 在Excel菜单中添加“开发工具”菜单,“开发工具”菜单里面都是用来开发VBA的菜单。

    4. 快捷键Alt+F11,按这个快捷键会直接进入到VBA的编译器内,可以在里面编写你的VBA代码了。

    下面来编写自己的第一个VBA工具,

    1.打开Excel工具

    2.在Sheet1中第一列录入一些信息

    3.点击“开发工具”菜单,再点击“录制宏”按钮。

    4.选中第一列,按Ctrl+C复制一下,再选中Sheet2,粘贴数据到第一列

    5.选择“data”菜单中取重复的按钮,给第一列去重复。

    6.点击“开发工具”菜单,停止录制宏。

    好了,第一个VBA工具已经完成了,接下来看看如果运行工具。

    1.删除掉Sheet2第一列数据,回到Sheet1

    2.选择“开发工具”中“宏”菜单,在弹出的对话框中,你会看到有一个命名为Macro1(具体看电脑生成情况)的方法,再点击对话框中右边的“Run”按钮。

    怎么样,是不是发现自己刚才的手动一步一步的操作,现在就只需要一个按钮都完成了。有没有瞬间感觉太不可思议,这个实例还只是入门级别的,你跟着学到后面才会发现真正的能提高工作效率的自动化工具的艺术。今天你学到了吗?给大家留一个思考题,录制宏能录制下自己所有的操作,是不是只要使用录制宏吧自己的操作都录制下来,一个真正能使用的自动化工具就完成了吗?相信经过大家的思考,能帮忙更快理解VBA。

  • ?

    如何保存含宏指令(VBA代码)的Excel工作簿

    梅瑞狄斯

    展开

    宏指的是一段操作指令,它也属于VBA的一种。通常情况下,在使用Excel处理数据时,如果碰到需要进行较多的重复性操作,可以通过录制宏命令来,将这些操作指令记录下来,然后让Excel傻瓜式的运行这些指令,即可实现化繁为简,在提高工作效率的同时还能保证质量的稳定,这就是为啥有些人在处理重复性操作时,是那么的得心应手,而有的人却是那么举步维艰,叫苦连天。除此之外,Excel还赋予了使用者极大的操作灵活性,使用者可以自己编辑VBA代码,实现一些Excel本身常规操作无法实现的功能,如拼图游戏等。当需要的代码指令已经录制好或编辑好之后,又该如何将它们保存下来以便下次操作使用呢?本教程将介绍几种方法帮你轻松搞定这一点。

    用最小的代价得到最好的东西

    1、对于一些仅含简单录制宏指令的Excel电子表格,可以直接单击Excel快速访问工具栏中的保存命令(保存命令快捷键为Ctrl+S)进行保存,此时的Excel工作簿的后缀名为xlsx。

    保存含宏指令技巧

    2、可以将含有宏指令的工作表另存为启用宏的Excel工作簿,具体操作是单击Excel界面菜单栏中的文件命令,然后找到另存为下的启用宏的Excel工作簿命令,单击该命令,设置保存路径即可实现宏指令的保存,此时文件的后缀名为xlsm。此方法保存的文件适用于不低于保存版本的Excel软件。

    复杂事情轻松应对

    3、考虑到Excel向下兼容的特性,如果想让宏代码文件通用于Excel各个版本,建议将含宏指令的工作簿保存成低版本,即Excel97-2003工作簿。具体操作是,单击另存为下的Excel 97-2003命令,然后选择保存路径即可,该方法保存的文件后缀名为xls。

    保存宏指令文件的后缀名差异

  • ?

    Excel 打开时提示需要VBA的宏语言支持时怎么回事

    童夏蓉

    展开

    因为文档中有宏,开启宏就可以了,操作方法如下:

    1.打开office excel 2013,鼠标单击“文件”。

    2.鼠标单击“选项”。

    3.鼠标单击“信息中心”。

    4.单击“信息中心设置”。

    5.选择”宏设置“------启用所有宏”。


    6.鼠标单击“确定”。宏启用完成。

    (本文内容由百度知道网友茗童贡献)

  • ?

    1个案例教你学会Excel中的VBA

    穆代萱

    展开

    可能很多朋友不知道Excel中VBA的用途。那什么是VBA呢?

    一句话概括:在Excel中想实现什么功能,就可以用VBA语言编写一段程序去完成。

    今天通过例子带大家了解Excel中的VBA!

    软件说明:Excel 2010版本

    场景再现:表格中点击按钮,向单元格E1中输入数字 “233”,并且能够实现清除!

    第一步、打开编写VBA代码的窗口

    在Excel表格中编写VBA的窗口叫VBE编辑器,有两种打开的方法。

    在工作表标签上右键 - 查看代码按Alt+F11

    第二步、创建写VBA代码的地方

    有朋友肯定会问:“我没学会编程怎么办?”、“我都没见过代码能行吗?”;别急!我的回复是肯定的!

    在哪编写代码呢?有好几种方式,今天先学最常用的:“插入” - “模块”。新建一个模块用来存放编写的代码;记住:修改模板的名称:我的VBA模板【如下图虚线标注】

    第三步、开始写代码

    新建模板后,在右侧的空白位置就是编写代码的地方。可以执行的VBA代码,结构是这样的:

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

    因为例子中我要进行输入与清除的操作,输入Sub 程序名()然后回车,End Sub就会自动输入;如下图:

    在开始和结束语句之间输入代码,执行在单元格A1中输入数字"233"

    Range("E1") = 123

    备注:在VBA中,Range("单元格地址")来表示单元格。在单元格中输入值,直接用=值 即可(字符串两边要加双引用),如果清空则 =""。

    再编写一段清空代码:

    第四步、测试运行代码

    在编写代码时经常要测试是否正确。测试方式是把光标放在代码行的任意位置【下图中“测试按钮”的位置】,点击运行小按钮进行测试;同样清空代码也一样。

    第五步、点击按钮执行VBA代码

    在Excel中插入的图形、图片、按钮控件都可以执行VBA代码。让它们执行很简单,点击“插入” - “矩形” - “指定宏”

    只需要右键菜单中点击指定宏 - 选取编写的宏名称,选择“输入”,添加输入按钮。

    同样添加清除按钮:

    当然自己可以调整字体的颜色、字体,让其变得更加美观!

    此时,通过VBA设置的输入“233”,并可以点击清除!

    第六步、保存VBA代码

    此时的VBA代码应该是既有输入代码又有清空代码;最后需要保存为“启用宏的工作簿"类型【注意下图中虚线框标注】,VBA代码才能保存下来。

    好了!今天的分享就到这里,是不是感觉VBA也没有想象的那么难?

    赶快转发、关注吧,更多技巧尽在头条号中!

excel宏vba

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP