精华内容
下载资源
问答
  • 【excelVBA】加入按钮用于启动

    千次阅读 2018-03-19 15:16:28
    效果:方法:步骤:

    效果:


    方法:


    步骤:



    展开全文
  • 一个VBA的小程序

    最近一直在学习python,发现python确实好用,今后应该会主攻python和c#,VBA将主要用于我快速检验数据模型的时候写函数用。

    之前答应过要一个小朋友辅导VBA,想了很久,没有比较好的简单易懂的案例。昨天想了想,先写一个文件夹遍历的小程序吧,主要是为了做个引子,同时我想她以后可能会遇到要打开某个文件夹里所有Excel的需求(比如找出每个excel中固定位置的值,然后打印到当前excel中。)。这个宏比较粗糙,作为入门案例比较容易懂。

    Excel的内容如下所示:




    高亮的单元格用以输入目标文件夹的路径,如 C:\ , D:\MySQL\ 等等。点击“查询”,则会将指定路径下所有的文件或者子文件夹的名字打印出来;清楚则会将该表的内容清除,但是以上高亮单元格内的内容将被保留。

    同时,如果该文件夹不存在,也会报错:由于不存在D:\MySQL\a 这个文件夹,因此该路径无效。




    最后上代码:

    Option Explicit
    
    Sub FFInSpecPath(SpecPath As String)
        Dim count As Integer
        Dim rng As Range
        Dim MyFile As String
        
        Set rng = Application.Worksheets("查询文件及文件夹").Range("B2")
        
        MyFile = Dir(SpecPath, vbDirectory)
        If MyFile = "" Then
            MsgBox ("指定路径下没有文件或文件夹哦!请检查是否漏写 \ 或者指定文件路径不正确!^_^")
        End If
        
        Do While MyFile <> ""
            MyFile = Dir        '第二次读入的时候不用写参数
            If MyFile = "" Then
                Exit Do         '当MyFile为空的时候就说明已经遍历完了,这时退出Do,否则还要运行一遍
            End If
            rng.Offset(count, 0).Value = MyFile
            count = count + 1
        Loop
        
    End Sub
    
    
    Sub Call_FFInSpecPath()
        Call InitAll
        Call FFInSpecPath(Application.Sheets("查询文件及文件夹").Range("B1").Value)
    End Sub
    
    
    Sub InitAll()
        Dim lstPath As String
        lstPath = Range("B1").Value
        Application.Sheets("查询文件及文件夹").Cells.Select
        Selection.ClearContents
        Range("A1").Value = "指定文件夹路径"
        Range("A2").Value = "该文件夹下所有文件"
        Range("B1").Value = lstPath
        Range("B1").Select
        
    End Sub
    

    其中,FFInSpecPath( SpecPath as String) 宏是打印出SpecPath下的文件或者子文件夹到当前sheet中。Call_FFInSpecPath 是按钮“查询”点击时调用的。InitAll是按钮“清除”点击时调用的。




    展开全文
  • EXCEL 工具栏添加按钮 图标 执行宏代码 EXCEL 工具栏添加按钮 图标 执行宏代码
  • 下面介绍定时执行vba程序过程: 1.Application.OnTime参数 Application.OnTime(EarliestTime,Procedure as String,[LatestTime],[Schedule]) EarliestTime调用程序的时间 Procedure调用程序的程序名,类型String ...
  • 多个按钮共用一个事件,用VBA开发的小例子。
  • Excel VBA宏

    2021-10-13 11:32:37
    VBA(Visual Basic for Applications)是[Visual Basic](https://baike.baidu.com/item/Visual Basic)的一种语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序...

    一、宏与VBA

    什么是宏与VBA

    • VBA(Visual Basic for Applications)是[Visual Basic](https://baike.baidu.com/item/Visual Basic)的一种语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是[Microsoft Office](https://baike.baidu.com/item/Microsoft Office)软件。它也可说是一种应用程式视觉化的 Basic 脚本。

    • 宏在计算机科学里是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。

      宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。

    • 在这里,我们通过VBA编写的一系列列指令组成的程序,称之为宏。通过学习VBA编写宏,有利于我们高效完成重复性的数据任务。

    二、录制第一个宏

    1、环境准备:

    1.打开Excel,进入开始页面,点击选项
    在这里插入图片描述
    2.在选项里面启用开发者工具选项
    在这里插入图片描述
    3.在Excel最上边一栏中就出现了开发者工具,里面就有宏
    在这里插入图片描述

    2、开始录制第一个宏

    1.源数据准备,准备两份相同的数据方便后面检验宏的效果,在Sheet2里准备和Sheet1相同的数据。

    区域省份1月2月3月4月5月6月
    华中湖南省412457822197912312553273334220773561622397
    华中湖北省38369012724075822557369678719494553271464
    华中安徽省7341522043402187392726234622442073678309
    华中江西省6529887196757587852298703629380359503
    华南福建省24021208590732222589248270213726424364248
    华南广东省11922154386766948114339960744886762834708
    华南海南省239016336697961337083419862819249933153451
    华东上海市37719483611844899594145295830362401405649
    华东浙江省212482049150762362902182929317278792422167
    华东山东省35920794491830226058112398546550604122184
    华东江苏省42068882106160158021230510504409351229652
    华北北京市451352025106562930520338521625172234488737
    华北河北省295372021238421514152084952869312395011
    华北天津市1368565657230350119274662923808561161643

    2.然后点击 “开始录制宏”
    在这里插入图片描述
    在这里插入图片描述
    确定后宏录制就已经开始
    在这里插入图片描述
    4.宏操作
    在这里插入图片描述
    1)对这个表格的第一行进行底色和字体颜色的处理

    选中之后在开始里面选择填充颜色和字体颜色

    2)在表格中间随便选择一格数据 Ctrl+A 选择全体数据进行居中处理

    3)准备的数据里面的数字是销售额,所以我们选择这里的数字格式设置为货币格式,调整小数点后面的数字的个数,减少,只要整数

    设置完成后的效果图

    在这里插入图片描述
    5.停止录制,至此,宏已经录制完毕

    6.然后可以用我们自己定义好的快捷键Ctrl+Shift+A启用宏,检验宏的效果

    3、查看宏背后的VBA代码

    单击Visual Basic查看VBA窗口,这个窗口是编写VBA代码的一个环境
    在这里插入图片描述

    提示:

    如果看不见代码文件的列表就单击视图,选择工程资源管理器即可。
    在这里插入图片描述
    列表里面有两项,一个是Excel对象,一个是模块

    双击模块1就可以看见代码窗口,就是我们刚才录制的宏的代码
    在这里插入图片描述

    4、怎么保存带有宏程序的Excel

    为了保证Excel的安全性,防止有VBA病毒植入,所以保存的时候要另存为 xlsm格式
    在这里插入图片描述
    再次打开我们保存的带有宏程序的文件
    在这里插入图片描述
    启用即可

    5、宏文件的安全设置

    Excel 开始 --> 选项 --> 信任中心
    在这里插入图片描述
    在受信任位置处选择添加新位置,将我们平时存放学习宏的文件夹添加进去。这样再打开的时候就不会有启用提示了。
    在这里插入图片描述

    三、使用相对引用录制宏

    1、宏功能说明:

    ​ 隔行变色

    2、先录制一个普通的宏

    在这里插入图片描述

    步骤:

    1.选中一行

    2.填充颜色

    3.隔一行选择

    在Sheet2里测试宏,确定生效。

    但是再次执行的时候不会有新的变化,就是只能实现变色一次,这是为什么?

    3、查看VBA代码

    在这里插入图片描述

    4、使用相对引用录制宏

    还是先录制宏,给宏命名之后在开始操作前单击 使用相对引用

    宏规则和步骤如上所示,录制完成后在Sheet4使用,发现可以隔行变色的功能可以重复实现。

    5、查看两个宏的VBA代码

    在这里插入图片描述

    6、通过表单控件运行宏

    在开发者工具里面选择

    插入 --> 表单控件 --> 在空白处点击 --> 关联要使用的宏
    在这里插入图片描述
    按我们使用宏的规则,点击按钮就可以看到使用效果

    在这里插入图片描述

    注意:

    宏的使用是不可撤销的,所以对宏的操作一定要慎重

    按钮的移动是鼠标右键选中移动

    7、快速访问工具栏运行宏

    在Excel选项里面点击快速访问栏

    选中我们要的添加到 自定义快速访问工具栏
    在这里插入图片描述
    还可以修改自定义快速访问工具栏里的图标
    在这里插入图片描述
    使用宏的时候在这里点击即可
    在这里插入图片描述

    8、保存宏到个人工作簿

    保存到个人工作簿里的宏在全局都可见。

    因为要想用当前工作簿中的宏的时候需要把这个宏文件打开,这样才可以在其他文件中使用。定义到个人工作簿中的宏则不受这个限制。

    操作方式:

    录制宏的时候保存在选择为个人工作簿

    剩下的过程如上所示,用隔行变色的功能即可

    确定宏可用之后检查宏
    在这里插入图片描述
    可以看见和以前的宏不同的是出现了PERSONAL.XLSB这样的新格式

    在当前Excel的视图里点击取消隐藏,就可以看见这个文件,它默认是隐藏的。

    在这里插入图片描述
    我们的保存在个人工作簿中的宏程序就是保存在PERSONAL.XLSB这个文件中的。

    我们再打开其他的Excel文档,找到宏,查看就可以发现隔行变色这个宏
    在这里插入图片描述

    展开全文
  • 系统性的知识前面已经讲完,从本章开始,本系列教程涉及的将...如果要让别人也能看懂自己的代码,那么注释更是可或缺的。 VBA中有两种注释的方法,其一是使用单引号,另一种是Rem。在单引号后面或Rem后面的所有内...

    系统性的知识前面已经讲完,从本章开始,本系列教程涉及的将会是一些相对凌散的内容。

    1. 注释

    代码注释是一件利人利己的事,为了方便自己在代码需要更新修改时,依然能够快速地看懂自己完的每一行代码到底是什么意思有何用处,在关键点加上代码注释是很有必要的。如果要让别人也能看懂自己的代码,那么注释更是不可或缺的。

    VBA中有两种注释的方法,其一是使用单引号,另一种是Rem。在单引号后面或Rem后面的所有内容,在程序运行时都不会被执行,它们就是注释的内容。通常注释的内容会被用其它颜色标识。如下:

    983631-20171112185148716-350561153.jpg

    有点不方便的是,貌似VBA里面并没有提供多行注释的方法,要想把多行代码注释掉,只能在每一行前面都加上单引号或者Rem

    在程序写得比较长的时候,就有必要在其中加入注释。注释通常应使用于:

    • 逻辑复杂的地方
    • 调用自定义的函数或过程
    • 每个函数和过程的开头。描述本函数和过程的作用

    还有其它一些作者认为应当写上注释的地方。每行都注释肯定是多余的,但不写注释,通常也是不对的。什么时候该写,什么时候不写,只有要自己用得多了之后,才会清楚。

    2. 宏按钮

    前面所讲的所有代码案例,都是在VBE里面执行的(无论是通过单击运行按钮还是快捷键F5),但这样明显是不方便的。一是每次都需要打开VBE甚至要定位到某一个过程中,才可以执行,二是如果不懂VBA操作的人,则完全不知该如何执行了。

    在Excel菜单栏-开发工具中,找到“插入”,点击它可发现有“表单控件”和“ActiveX控件”,这里使用的是第一个,表单控件。它的第一个,就是按钮。点击一下这个按钮,则可以在Excel表格中通过鼠标的拖动来放置一个按钮对象。如果使用的是表单控件中的按钮,则在放开鼠标后,会马上弹出一个指定宏的对话框:
    983631-20171112185258528-345795696.jpg

    当然这时也可以不指定,点取消即可。后面有需要时,通过右键单击这个按钮,选择指定宏也可以达到同样的效果。
    983631-20171112185330669-151836080.jpg

    其实理论上来说,VBA中的过程,或者说Excel中的宏,可以指定给Excel中的各种对象实体,比如插入的图片、各种形状,甚至在Excel中的生成的图表,都是可以作为宏执行的载体的。

    我通常都通过插入形状来设置按钮,因为形状更加美观,可以设置它的各种格式,和Excel表格配合更为协调,不影响整体版面。用如下方式插入一个自己喜欢的形状:
    983631-20171112185356653-1018178109.jpg

    在其中加入提示文字并设置好格式后,就可以右键单击它,选择“指定宏”来把相应的VBA过程赋给它:
    983631-20171112185404606-1751860261.jpg

    有兴趣的朋友,可以尝试学习使用ActiveX控件。通过鼠标拖放一个ActiveX控件后,右键单击它,查看代码,留意代码上方左右两个对象窗口,点击右边的下拉列表可以发现这个控件可以有很多事件,例如单击、双击、鼠标移入、鼠标移出、被选中时等
    983631-20171112185541825-1981907028.jpg

    3. 错误处理

    当代码执行出错时,VBA提供了两种处理的方式:

    • On Error GoTo
    • On Error Resume Next

    3.1 On Error GoTo

    表示如果自本行开始后面的代码执行出错,则跳至指定位置继续执行。如:

    Sub te4()
        On Error GoTo con
        Debug.Print "a" + 3
        Debug.Print 8 - 5
    con:
        Debug.Print "error occur"
    End Sub

    示例中第2行设置了On Error GoTo con,即当第3行出错时,就跳到con标记处,执行自con后的代码。标记后面应加上冒号(:)。第3行中,用双引号包含的a是一个字符串,而3是一个数字,直接将字符串与数字相加是会出错的,所以这里会触发错误,第4行不会被执行到,程序会直接跳转到con处,执行后面的Debug.Print语句。程序输出error occur。

    注意,如果把第3行和第4行交换位置,则程序会先输出8-5的结果(即3),再输出error occur。

    3.2 On Error Resume Next

    表示如果代码执行出错,则从出错代码的下一行代码继续执行。如:

    Sub te3()
        On Error Resume Next
        Debug.Print 5 + 3
        Debug.Print "a" + 3
        Debug.Print "error occur"
    End Sub

    代码第3行执行正常,第4行将出错,于是直接执行第5行。所以程序的输出是:

    8

    error occur

    最后要提醒的是,以上提到的两种错误处理的方法应尽量尽量少用。因为有错误应该去解决它,而不是跳过它。

    作业:

    \1. 执行以下代码,观察输出结果,务必结合输出结果理解代码的每一行及它的逻辑。

    Sub test()
        On Error GoTo con
        Debug.Print 3 + 3
        Debug.Print 5 * 5
        
    con:
        Debug.Print "error occur"
        Debug.Print "Do you understand this all?"
    End Sub

    \2. 执行以下代码,观察执行结果,务必结合输出结果以错误提示理解代码的每一行及整个代码的逻辑。

    Sub test1()
        
        On Error GoTo con
        On Error GoTo 0
        Debug.Print 3 + 3
        Debug.Print "c" - 3
        Debug.Print 5 + 5
    con:
        Debug.Print "error occur"
        Debug.Print "Do you understand this all?"
    End Sub

    本系列教程其它文章

    Excel VBA 入门(零)
    Excel VBA入门(一)数据类型
    Excel VBA入门(二)数组和字典
    Excel VBA入门(三) 流程控制1-条件选择
    Excel VBA入门(四)流程控制2-循环控制
    Excel VBA入门(五)Excel对象操作
    Excel VBA入门(六)过程和函数
    Excel VBA入门(七)注释、宏按钮及错误处理
    Excel VBA入门(八)单元格边框
    Excel VBA入门(九)操作工作薄

    转载于:https://www.cnblogs.com/wuzhiblog/p/vba_seven.html

    展开全文
  • vba点击开始按钮 在控件中变化显示数字 点击停止不再变化 ,并显示获得的数字
  • 一个按钮点击一次即可运行1、2、3、4、5、6、7.代码怎么写?
  • vba_按钮

    2019-10-01 03:05:51
    2.2. 在红色位置双击,并选择自定义按钮,并拉至所需要的工具栏 2.3. 指定需要运行的并指定操作所对应的模块,宏名为你所编写并保存的工程,点击确定即可。 综上,你就可以完成一个自定义的命令。具体...
  • word编程以及VBA

    万次阅读 多人点赞 2018-12-03 19:55:37
    微软的office软件允许用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力。 如完成一个一打开word文件同时要打开某个文件的功能,必须要自己编写一段称之为的脚本。 具体做法是在菜单栏点击开发工具-...
  • 步骤1 单击“开发工具”选项卡中的“按钮。 步骤2 在弹出的“”对话框中选中需要查看的宏名,并单击“编辑”按钮,如图所示。 步骤3 在弹出的窗口中即可查看到该代码,如图所示。 2.修改的名称 ...
  • Excel-VBA

    千次阅读 2019-04-11 22:33:55
    文章目录1 什么是VBA2 2.1 打开Excel的开发工具功能2.2 初级2.3 使用相对引用2.4 制作工资条2.5 添加表单控件3 VBA3.1 VBA编码语法3.2 变量3.2.1 定义变量3.2.2 变量名的命名规则3.2.3 变量的赋值3.3 数据类型...
  • 我有一个excel电子表格,其中包含大量的VBA和包含按钮.如何在Excel中执行VBA代码(特别是单击按钮并触发其onclick事件)来自python之外(例如)?注意:我愿意用C,C#或Java等不同语言学习答案;但是,到目前为止,我更...
  • 添加VBA控件按钮及操作提示框

    万次阅读 2018-09-18 14:47:58
    在Excel文件中,为了实现更加自动化或者称为人机交互式的操作,很多人是喜欢直接在visualbasic编辑器里点击运行按钮执行程序,在编辑器里操作更像是专业开发技术人员开发测试使用的操作,对于用户来讲,他们根本...
  • Excel创建按钮调用

    千次阅读 2014-06-04 10:20:46
    今天匆匆忙忙写了个,但是发现以前用来创建按钮的开发工具菜单不见了。 找了上十分钟把Excel翻了个遍,终于在Excel选项的常用中找到了,先Mark下,留个同样找到的童鞋。 截几个图,方便大家一下子能找到哈: 接...
  • 功能区按钮调用Excel、PowerPoint、Word中的...不过,当你开发完一个工具的时候,一定会想到这些过程的执行方式,普遍的做法是向工作表上放置表单控件,用户在工作表上点击按钮执行宏。 另外的方式,就是利用Cust...
  • vba宏是什么,如何操作

    千次阅读 2019-12-17 12:16:59
    vba:意思就是一堆操作指令 那是什么意思呢 比如单元格文字 获得以上文字,你需要分三步走 1、在单元格输入 “文字” 2、将字体大小设为22 3、将字体颜色设置为红色 那如果用宏来操作,只需要按钮点一下即可...
  • 现在想做的就是编写python可以自动的点击这个按钮或者自动的触发需要返回值,计算结果能跟手动一样返回在excel中即可。 # 已经试过的方法 名称是all_transport1(),两种方法都是网上查了资料找到的。 ...
  • VBA

    2019-10-05 13:36:16
    VBA ======  刚开始的内容听起来很枯燥,请大家不要分心,耐着性子看下去,兴趣总是慢慢积累的。 ------------------------------------------------------------------------------ 1、亲自动手,...
  • word vba宏 The goal of this course is to help people who have never written a program before learn to write one. There's no reason why office workers, homemakers, professional engineers and pizza ...
  • xlwings - 让Excel飞起来image说明:我的xlwings版本是0.11.5。老一点的版本可能需要经过额外的设置,其excel插件才能用。...这里总结如何从Excel通过加一个Macro(),点击一个按钮来调用Python,从而实现对Exce...
  • wps是一款办公软件,一直以免费且高效收到广大用户喜爱,wps只有本地功能、用户可选恢复功能、带联网内容和模块、无多余连接按钮等.,内存占用低,运行速度快,体积小巧。 软件介绍 WPS Office是由金山软件股份...
  • 如何设置加载思考 1、 写好需要普遍使用的代码(这里假设1.xlsx为开发文件,代码比较简单) 2、 新建一个excel文件夹,将其命名为“sampson的代码库”,将上述代码复制到该文件的模块内。 3、 点击 文件>>...
  • 步骤1 单击“开发工具”选项卡中的“录制按钮。 步骤2 在打开的“录制新宏”窗口中进行如图1-5所示的设置后单击“确定”按钮。 步骤3 选中“H:L”列后,单击鼠标右键,在弹出的快捷菜单中单击“删除”按钮,...
  • CDR-VBA宏完整案例详解(上部)

    千次阅读 2020-12-19 09:37:11
    大家好我是君墨,今天为...本案例所用参数并多,而且有许多是通用的,大家可以试着了解下,此文就一一介绍了,重点在代码编辑这块,同时也会讲到一些关键参数(如窗体的ShowModel模态弹窗参数)。在学习本案例前...
  • 我有一个,它采用不同的范围,使用其中的值执行计算,然后将值复制到一个单元格,以便可用于工作表中的公式 . 我希望在修改某些范围内的值时运行此 . 我在不同的工作表中使用相同的代码,我最初放置了一个...
  • Excel VBA):添加

    2017-02-02 13:57:00
    1、编写,打开VBA,双击ThisWorkbook对当前工作薄进行编写;双击Sheet1,对整个sheet编写; 或者创建模块,在模块里,编写、调试代码。 打开VBA的方法见第一讲,结合常用窗口进行编写、调试。 2、部分对象有...
  • VBA宏批量处理多个Word文档

    千次阅读 2021-01-20 11:19:45
    前言 工作里面需要处理上百个Word文档,所以就开始在...点击红框内按钮,就可以开始编写和运行了     具体代码 Sub 批量操作WORD() Application.ScreenUpdating = False '冻结屏幕,打开各个文件及关闭

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,184
精华内容 873
关键字:

vba按钮不执行宏