精华内容
下载资源
问答
  • 自动筛选数据时,每次修改筛选字段后再去执行VBA进行筛选还是会比较麻烦。若要在修改筛选字段后,自动完成筛选,可以通过如下操作进行。1. 在打开Visual Basic后,双击项目工程的Sheet1,也就是要执行筛选数据的...

    在自动筛选数据时,每次修改筛选字段后再去执行VBA进行筛选还是会比较麻烦。

    f73b912717cd2c24ca1446dc17cbd2ee.png

    若要在修改筛选字段后,自动完成筛选,可以通过如下操作进行。

    1. 在打开Visual Basic后,双击项目工程的Sheet1,也就是要执行筛选数据的工作表。

    349e44d9674eb5a399a9406df2746ea6.png

    2. 在代码框的“通用”选择Worksheet。

    64d3a34c4c70c8fb0c9043187ac902e8.png

    3. 代码框的“声明”选择“Change”。

    b3ca2ad2dc8edc07398953dc5eb1b928.png

    4. 将自动筛选的代码复制到Change事件的过程中。

    b079394bacebcc5720fada8b13bddf72.png

    自动筛选的代码请参考以下文章:

    GIL214:Excel VBA自动筛选数据zhuanlan.zhihu.com
    zhihu-card-default.svg

    5. 在自动筛选的代码前后添加一个主程序的属性,在执行筛选之前先关闭事件。修改筛选字段时已经触发了Change事件,然后再次执行筛选的同时表格也发生变化,此次变化时不用触发事件。

    514615f8830dfe2e69ed40ff5b481d55.png
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    Application.EnableEvents = False
    
    Sheet1.Range("J1:O2000").ClearContents
    
    Sheet1.Range("A1:F30").AutoFilter field:=2, Criteria1:=Sheet1.Range("H2")
    
    Sheet1.Range("A1:F30").Copy Sheet1.Range("J1")
    
    Sheet1.Range("A1:F30").AutoFilter
    
    Application.EnableEvents = True
    
    End Sub

    6. 回到Excel工作表中,当修改了班级后,就会自动筛选出对应的结果,不用再点击执行代码或宏了。

    819f31c45f7dd9cb938ab912538a5a89.png
    展开全文
  • 打开excel就能看到数据库查询结果,而且能定时自动完成查询并更新数据,想要实现么?跟着这些步骤操作起来: 1、打开excel中的vb 表单名称->右键->查看代码 2、双击上图中模块1 添加查询数据库及定时...

    打开excel就能看到数据库查询结果,而且能定时自动完成查询并更新数据,想要实现么?跟着这些步骤操作起来:

    1、打开excel中的vb

    表单名称->右键->查看代码

                                                                      图一

    2、模块1(图一中)添加查询数据库及定时执行代码

    Sub searchDB()
        Sheets("Sheet1").Range("2:65536").Clear
        Set cnn = CreateObject("ADODB.Connection")
        Set rst = CreateObject("ADODB.Recordset")
        cnn.Open "Driver={Oracle in instantclient_19_10_64};Dbq=tnsnames.ora中数据库别名或者tnsnames.ora中整个串;User Id=数据库用户名;Password=密码;"
        Set rst = cnn.Execute("select * from 表名")
        For j = 0 To rst.Fields.Count - 1
          Cells(1, j + 1) = rst.Fields(j).Name
        Next
        Range("A2").CopyFromRecordset rst
        cnn.Close
    	Application.OnTime Now() + TimeValue("01:00:00"), "searchDB"
    End Sub

    3、ThisWorkbook(图一中)添加打开工作簿就触发执行的代码

    Private Sub Workbook_Open()
        Call searchDB
    End Sub
    

    经过上述3步,就能实现定时查询oracle数据库,并显示查询结果了。不过要想连接上数据库还需要参考https://blog.csdn.net/mh_dream/article/details/113867612实现。

    展开全文
  • 双击Thisworkbook,选择workbook,选择Open事件,会自动出现2段代码: Private Sub Workbook_Open() End Sub 在出现的代码中间添加这段指令,保存即可。 Private Sub Workbook_Open() Call sheet1.ngy End Sub ...

    例如在sheet1中有个名为ngy的宏,需要Excel启动时自动运行,
    Sub ngy()

    End Sub

    双击Thisworkbook,选择workbook,选择Open事件,会自动出现2段代码:
    Private Sub Workbook_Open()
    End Sub

    在出现的代码中间添加这段指令,保存即可。
    Private Sub Workbook_Open()
    Call sheet1.ngy
    End Sub

    展开全文
  • VBA研究】EXCEL启动时自动启动窗体

    千次阅读 2015-08-26 10:09:44
    VBA编程时为了界面美观,我们经常用到窗体Form,那么,如何做到让VBA窗体在EXCEL启动时自动运行呢? 方法有二,第一,双击ThisWorkbook,输入以下代码(Open事件): Private Sub Workbook_Open() UserForm1.Show ...

    作者:iamlaosong

    VBA编程时为了界面美观,我们经常用到窗体Form(比如欢迎窗口),那么,如何做到让VBA窗体在EXCEL启动时自动运行呢?

    方法有二:

    第一,双击ThisWorkbook,输入以下代码(Open事件):

    Private Sub Workbook_Open()
        Application.Visible = False     ' 关闭应用对象,只保留窗体。
        Welcome.Show
    End Sub

    第二,也可以插入一个模块,输入下面自启动代码:

    Sub Auto_Open()
        UserForm1.Show
    End Sub
    两种方法都可以启动VBA窗体(关闭窗体:Unload UserForm1或者UserForm1.Hide)。

    上面两个过程其实就是一个自启动过程,除了启动窗体,还可以干很多其他的事情,比如增加菜单,总之,一些需要在Excel启动后就完成的功能都可以放在这些过程中。下面是一个增加菜单的程序:

    Open事件:

    Private Sub Workbook_Open()
        AddNewMenu
    End Sub

    模块中AddNewMenu过程,本过程也可以直接放在Open方法中,这样写是为了可读性。

    '添加菜单项
    '与添加新菜单一样,在添加菜单项及子菜单时,使用Add方法,且指定合适的控件类型,其代码清单如下:
    Sub AddNewMenu()
        Dim HelpMenu As CommandBarControl
        Dim NewMenu As CommandBarPopup
        Dim MenuItem As CommandBarControl
        Dim SubMenuItem As CommandBarButton
        
        On Error Resume Next
        
        '如果菜单已存在,则删除该菜单
        CommandBars(1).Controls("循环取货(&X)").Delete
        '利用ID属性查找帮助菜单
        Set HelpMenu = CommandBars(1).FindControl(ID:=30010)
        
        If HelpMenu Is Nothing Then
            '如果该菜单不存在,则将新菜单添加到末尾
            '设置新菜单为临时的
            Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True)
        Else
            '将新菜单添加到帮助菜单之前
            Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True)
        End If
        
        '添加菜单标题并指定热键
        NewMenu.Caption = "循环取货(&X)"
        
        '添加第一个菜单项
        Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)
        With MenuItem
            .Caption = "导入看板(&K)..."
            '添加快捷键
            .ShortcutText = "Ctrl+Shift+K"
            .FaceId = 590       ' 不同的数值代表不同的图标
            .OnAction = "ImpKanban"
        End With
        
        '添加第二个菜单项
        Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)
        With MenuItem
            .Caption = "导入清单(&Q)..."
            '添加快捷键
            .ShortcutText = "Ctrl+Shift+Q"
            .FaceId = 162
            .OnAction = "ImpQingdan"
        End With
        
        '添加第三个菜单项
        '本菜单有子菜单项,因此其类型为msoControlPopup
        Set MenuItem = NewMenu.Controls.Add(Type:=msoControlPopup)
        With MenuItem
            .Caption = "数据报表(&R)..."
            '添加分隔线
            .BeginGroup = True
        End With
        '添加子菜单
        '添加第一个子菜单
        Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
        With SubMenuItem
            .Caption = "月汇总(&M)"
            .FaceId = 110
            .OnAction = "MonthRpt"
        End With
        '添加第二个子菜单
        Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
        With SubMenuItem
            .Caption = "季度汇总(&Q)"
            .FaceId = 222
            .OnAction = "SeasonRpt"
        End With
    End Sub
    


    展开全文
  • VBA学习笔记三VBA事件执行宏的方法工作表事件事件操作示例根据表格中的内容自动筛选数据参考 VBA事件 执行宏的方法 执行宏的方法: 1、在写好的代码处点击一下,然后点击执行 2、点击宏,选中代码名后执行 3、将宏与...
  • VBA程序

    2018-05-08 12:48:16
    1、打开VBA窗口,点击菜单【插入】→【模块】在工作表中新建“模块1”,并双击该模块对象打开其代码编辑窗口。如下图:2、将光标置于“模块1”对应的代码窗口中,点击菜单中的【插入】,再选择【过程】,在打开的...
  • 看了本文标题,什么叫事件? excel将下面叫做“数据”的工作表根据分类条件拆分成多个sheet工作表,表名为分类条件。 我的理解是发生了什么就执行一些...点击Visual Basic,需要双击对应的表选择对象为worksheet,...
  • vba窗口介绍

    2018-05-06 21:39:01
    VBA窗口功能介绍:1.立即窗口:有两个主要功能:...当用户在工程管理器中双击某个对象时,其对应的代码窗口会自动打开,用户可以在其中编辑和调试代码。4.菜单栏:是VBA窗口最重要的组成,包括文件、编辑、视图、...
  • 让wps支持vba

    2013-04-03 19:52:26
    运行批处理脚本SET.BAT可自动复制和设置。在WIN XP中双击SET.BAT即可。在Win7中, 需在SET.BAT上点右键,以管理员身份运行才能设置成功。 WPS 2012中:ALT + F8 运行宏,ALT + F11 打开宏编辑器。 SET.BAT中的...
  • Part 1:事件定义 所谓事件简单来说就是Excel执行某些了操作,例如打开工作簿,关闭工作簿事件作为触发代码执行的条件,是VBA自动化办公一个典型实例事件是分层级的,本文只介绍工作表事件和工作簿事件对应代码位置...
  • 但如果从VBA自动化会话调用(从excel调用),如果先没有进行交互,则会失败.最奇怪的是:它在GUI上点击一段时间后可以在VBA上运行(可能是odbc mysql连接超时).passthrough-query在DSN和连接字符串中有密码(用于解决商店...
  • EXCEL的VBA版本扫雷

    2018-08-03 16:45:40
    右键标记地雷,未点开方块双击视为点开,已点开方块双击视为递归扫雷(类似于WIN扫雷的左右键一起按)。 可以自由制定宽和高,以及地雷数,自动埋雷。 其实后来我又在这个基础上改进了一版功能更加强大的扫雷,解决...
  • Change:工作表对象(worksheet)当一个单元格处于编辑状态或者发生变化时会触发包含双击也会触发,可以进行有效性验证;修改格式,合并单元格,排序,增减批注不会触发 避免事件级联:a.使用静态变量加锁(暂不讲)...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧60 使用VBA自动生成图表 12 技巧61 使用独立窗口显示图表 12 技巧62 导出工作表中的图表 12 技巧63 多图表制作 12 第5章 Application对象 12 技巧64 取得Excel版本信息 12 技巧65 取得当前用户名称 12 技巧66 ...
  • 比如:我双击工作表,会自动弹出一个窗口欢迎我,那么这时工作表是对象,而双击就是对象所对应的事件。在Excel中,事件主要分为以下四类:①工作簿事件②工作表事件③窗体、控件事件④图表事件。今天主要分享工作簿...
  • 动手编写VBA程序

    2018-05-06 19:00:25
    实训内容:添加或删除模块,动手编写程序step1: 添加模块: 打开VBA窗口,点击菜单“插入”—“模块”在工作簿中新建模块,并双击改模块对象打开其代码编辑窗口,如下图所示step2: 将光标定于所选模块对应的代码...
  • ExcelVBA之 sheet隐藏

    2020-05-28 23:57:02
    VBA 编辑器,打开"工程资源管理器",双击该工作表,现在出现的是设置该表的属性的编辑窗口,单击窗口左上的下拉列表框,选择 worksheet ,这时再从该窗口右上方的列表框中选择Active("激活"),这时自动显示如下的...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    技巧60 使用VBA自动生成图表 145 技巧61 使用独立窗口显示图表 149 技巧62 导出工作表中的图表 150 技巧63 多图表制作 151 第5章 Application对象 155 技巧64 取得Excel版本信息 155 技巧65 取得当前用户名称 156 ...
  • EXCEL VBA常用技巧

    2010-02-09 22:28:27
    VBA常用技巧 目录 第1章 Range(单元格)对象 3 技巧1 单元格的引用方法 3 1-1 使用Range属性 3 1-2 使用Cells属性 4 1-3 使用快捷记号 4 1-4 使用Offset属性 5 1-5 使用Resize属性 6 1-6 使用Union方法 7 1-7 使用...
  • Excel 任务的自动化其实就是将一系列的Excel 操作用程序去实现。程序的编写和调试需要在特定的开发环境下进行。VBE( Visual BasicEditor)就是Excel提供的专门用于编辑和调试VBA 程序的编辑器。 接下来我们将介绍VBE...
  • Excel利用VBA实现下拉列表,同时支持输入时动态查询,根据输入的不同实现动态的查询 先看一下实验效果: 当点击website这一列时会出现所有的网站列表,双击可点击选择数值填入 输入关键字时会只出现包含关键字的...
  • 利用几个典型的实例介绍了应用程序层事件(禁用命令)、文档层事件(双击事件和快捷菜单事件)和对象层事件(临时“反应器”)的处理方法,然后用一个序号球的实例模拟了永久“反应器”。 第9章处理在三维空间中的程序设计...
  • VBA程序的创建,运行及保存

    千次阅读 2018-05-07 18:39:27
    首先打开VBA窗口,点击菜单“插入”“模块”,在工作簿中新建“模块1”,并双击该模块对象打开其代码编辑窗口。2.将光标定于“模块1”对应的代码窗口中,点击菜单“插入”“过程”,在打开的“添加过程”就对话框中...
  • 三、实训项目1.3:VBA程序实训目的:动手编写VBA程序实训内容:添加或删除模块,动手编写程序作业: CSDN发表自己的第一个VBA程序代码。例,将活动工作薄中自动新建工作表并将其命名为“员工考勤表”。1.打开VBE...
  •  2、 双击 VBA Mouse Wheel Fix.reg 文件,将其导入到注册表。  3、 打开 VB6 或者 VBA 编辑器,打开它的外接程序管理器,会看到列表里出现了“MouseWheel Fix”这一项。选择它并将其设置为“加载的”和“启动时...
  • 实训项目1.3:VBA程序

    2018-05-08 23:35:36
    在工作簿中新建模块,并双击改模块对象打开其代码编辑窗口,如下图所示3.将光标定于所选模块对应的代码窗口中,点击菜单“插入”—“过程”,在打开的“添加过程”对话框输入过程名等信息,之后点击确定即可自动生成...
  • 大家好,我是陈小虾,是一名自动化方向的IT民工。写博客是为了记录自己的学习过程,通过不断输出倒逼自己加速成长。但功能说明:由于水平有限,博客中难免会出现一些BUG,或者有更优方案恳请各位大佬不吝赐教!微信...
  • 编写第一个VBA程序

    千次阅读 2018-05-06 16:19:36
    实现在活动工作簿中自动新建工作表并...),同时自动弹出其代码窗口,若不弹出则可双击该模块对象打开其代码窗口;将光标定于模块的代码窗口中,点击菜单“插入”——“过程”,弹出“添加过程”对话框,输入名称Ad...

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

vba自动双击