精华内容
下载资源
问答
  • VBA事件:【工作簿事件】 【工作表事件】
    2021-12-24 01:16:13
    • 工作簿事件
    Activate	                激活工作薄时
    AddinInstall	            当工作簿作为加载宏安装时
    AddinUninstall	            工作簿作为加载宏卸载时
    BeforeClose	                关闭工作薄前
    BeforePrint              	打印工作薄(或其中任何内容)之前
    BeforeSave                  保存工作薄前
    Deactivate	                工作簿从活动状态转为非活动状态时
    NewSheet	                在工作簿中新建工作表时
    Open	                    打开工作簿时
    PivotTableCloseConnection	在数据透视表关闭与其数据源的连接之后
    PivotTableOpenConnection	在数据透视表打开与其数据源的连接之后
    SheetActivate	            激活任何一张表时
    |SheetBeforeDoubleClick	    双击任何工作表时
    SheetBeforeRightClick	    鼠标右键单击任一-工作表时
    |SheetCalculate	            工作表重新计算时
    SheetChange	                更改工作表中的单元格时
    |SheetDeactivate	        任一工作表由活动状态转为非活动状态时
    SheetFollowHyperlink	    单击MicrosoftExcel中的任意超链接时
    |SheetPivotTableUpdate	    数据透视表的工作表更新之后
    SheetSelectionChange	    工作簿中的数据透视表更新之后
    WindowActivate	            工作簿的窗口激活时
    WindowDeactivate        	工作簿的窗口变为非活动状态时
    WindowResize	            工作簿窗口调整大小时   
    

    ·

    • 工作表事件
    Activate	                激活工作表时
    Deactivate	                工作表从活动状态转为非活动状态时
    BeforeDoubleClick	        双击工作表前
    BeforeRightClick	        右键单击工作表时
    Calculate	                对工作表进行重新计算之后.
    Change	                    更改工作表中的单元格,或外部链接引起单
    |FollowHyperlink	        单击工作表上的任意超链接时
    PivotTableUpdate	        在工作簿中的数据透视表更新之后
    SelectionChange             工作表上的选定区域发生改变时
    

    更多相关内容
  • VBA关闭工作簿和退出Excel

    万次阅读 2013-07-12 10:01:54
    要用VBA关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法。下面是一些代码示例:  关闭活动工作簿,如果工作簿有更改,提示是否保存:  Sub CloseWorkbook()  ...
    要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法。下面是一些代码示例:

        关闭活动工作簿,如果工作簿有更改,提示是否保存:

        Sub CloseWorkbook()
        ActiveWorkbook.Close
        End Sub

        如果要避免出现提示,可添加“SaveChanges”参数,如直接保存并关闭工作簿:

        Sub ClostAndSaveWorkbook()
        ActiveWorkbook.Close Savechanges:=True
        End Sub

        将上述代码中的“True”改为“False”,则直接关闭工作簿而不保存。

        关闭所有打开的工作簿,并提示是否保存:

        Sub CloseAllWorkbooks()
        On Error Resume Next
        Workbooks.Close
        End Sub

        退出Excel,并提示对有更改的工作簿进行保存:

        Sub QuitExcel()
        Application.Quit
        End Sub

        保存活动工作簿并退出Excel:

        Sub SaveActiveWorkAndQuit()
        ActiveWorkbook.Save
        Application.Quit
        End Sub

        下面的代码在退出Excel时都不会提示是否保存工作簿。

        保存所有打开的工作簿并退出Excel:

        Sub SaveAllAndQuit()
        For Each wbk In Workbooks
        wbk.Save
        Next
        Application.Quit
        End Sub

        退出Excel,所有的改动都不保存:

        Sub QutiAndNoAlerts()
        Application.DisplayAlerts = False
        Application.Quit
        End Sub

     

    展开全文
  • VBA 创建一个工作簿

    千次阅读 2021-04-08 09:53:59
    一、代码 Sub test() Dim wb As Workbook, sht As Worksheet '定义一个... Set wb = Workbooks.Add '新建一个工作簿 Set sht = wb.Worksheets(1) With sht .Name = "另存工资表" '修改第一张工作表的标签名称 .R

    一、代码

    Sub test()
        Dim wb As Workbook, sht As Worksheet    '定义一个Workbook对象和一个Worksheet对象
        Set wb = Workbooks.Add                  '新建一个工作簿
        Set sht = wb.Worksheets(1)
        
        With sht
            .Name = "另存工资表"                '修改第一张工作表的标签名称
            .Range("A1:F1") = Array("序号", "姓名", "部门", "职位", "基本工资", "实际到账")     '设置表头
        End With
        
        wb.SaveAs ThisWorkbook.Path & "\另存工资表.xls"     '保存新建的工作表到本工作簿所在的文件夹中
        ActiveWorkbook.Close                                '关闭新建的工作簿
        
    End Sub
    

    二、运行结果

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 对Excel活动工作簿进行合并,汇总所有工作表,保存工作簿最前,适用于同格式 合并工作簿中所有工作表 Sub 合并工作簿中所有工作表() '当前工作簿wb所有工作表ws合并保存至新建工作表(插入最前),但之前ws不修改...

    对Excel活动工作簿进行合并,汇总所有工作表,保存在工作簿最前,适用于同格式

    合并工作簿中所有工作表

    Sub 合并工作簿中所有工作表()
        '当前工作簿wb所有工作表ws合并保存至新建工作表(插入最前),但之前ws不修改(工作表格式相同)
        Dim wb, ws, title_row, end_row, copy_title, i
    '--------------------参数填写:title_row,数字,第1行为1向下递增;end_row,数字
        title_row = 1  '表头行数,仅复制1次;如果为0,则表示没有表头或表头每次都复制
        end_row = 0    '表尾行数,不参与合并
        Set wb = Application.ActiveWorkbook  '当前工作簿即为待合并工作簿
        Set ws = wb.Worksheets.Add(before:=Sheets(1))  '最前添加新sheet,即为合并工作表
        ws.Name = "合并表"
        If title_row > 0 Then copy_title = True Else copy_title = False  '是否复制表头
        If title_row < 0 Then Debug.Print "title_row参数错误,必须为>=0的整数": Exit Sub
        Application.ScreenUpdating = False  '关闭屏幕更新,加快程序运行
        Application.DisplayAlerts = False   '不显示警告信息
        '遍历,复制表体
        For i = 1 To Worksheets.count:
            If Worksheets(i).Name <> ws.Name Then
                If copy_title = True Then  '复制表头,仅执行1次
                    Worksheets(i).Rows(1 & ":" & title_row).Copy ws.Range("A1")
                    copy_title = False
                End If
                '首行为空,会导致后续数据被覆盖
                If WorksheetFunction.CountA(ws.Rows(1)) = 0 Then ws.Rows(1).Delete
                write_row = ws.UsedRange.Rows.count + 1  '合并工作表的第一个空行写入
                sheet_row = Worksheets(i).UsedRange.Rows.count
                Worksheets(i).Rows(title_row + 1 & ":" & sheet_row - end_row).Copy ws.Range("A" & write_row)
            End If
        Next
        Application.ScreenUpdating = True
        Application.DisplayAlerts = True
        
    End Sub
    

    合并文件夹下所有工作簿中所有工作表

    Sub 合并文件夹下所有工作簿中所有工作表()
        '文件夹下所有工作簿wb所有工作表ws合并保存至新建工作表(但不含子文件夹),但不修改原数据(工作表格式相同)
        Dim wb, ws, title_row, end_row, copy_title, file_path, file_name, save_file, i
    '--------------------参数填写:title_row,数字,第1行为1向下递增;end_row,数字;file_path,合并文件夹
        title_row = 1  '表头行数,仅复制1次;如果为0,则表示没有表头或表头每次都复制
        end_row = 0    '表尾行数,不参与合并
        file_path = "E:\测试\拆分表\"  '待合并工作簿所在的文件夹
        file_name = Dir(file_path & "*.xlsx") 
        If title_row > 0 Then copy_title = True Else copy_title = False  '是否复制表头
        If title_row < 0 Then Debug.Print "title_row参数错误,必须为>=0的整数": Exit Sub
        Application.ScreenUpdating = False  '关闭屏幕更新,加快程序运行
        Application.DisplayAlerts = False   '不显示警告信息
        Workbooks.Add    '新建工作表
        Set ws = ActiveSheet
        ws.Name = "合并表"
        Do While file_name <> ""
            Set wb = Workbooks.Open(file_path & file_name)
            For i = 1 To Worksheets.count:
                If copy_title = True Then  '复制表头,仅执行1次
                    wb.Worksheets(i).Rows(1 & ":" & title_row).Copy ws.Range("A1")
                    copy_title = False
                End If
                '首行为空,会导致后续数据被覆盖
                If WorksheetFunction.CountA(ws.Rows(1)) = 0 Then ws.Rows(1).Delete
                write_row = ws.UsedRange.Rows.count + 1  '合并工作表的第一个空行写入
                sheet_row = wb.Worksheets(i).UsedRange.Rows.count
                wb.Worksheets(i).Rows(title_row + 1 & ":" & sheet_row - end_row).Copy ws.Range("A" & write_row)
            Next
            wb.Close (False)
            file_name = Dir  '下一个文件名
        Loop
        '保存文件
        save_file = file_path & "合并表.xlsx"
        ws.Parent.SaveAs filename:=save_file
        ws.Parent.Close (False)
        Application.ScreenUpdating = True
        Application.DisplayAlerts = True
        
    End Sub
    

    举例

    1,合并《Excel·VBA按列拆分工作表》,sub1拆分后的工作表
    在这里插入图片描述
    在这里插入图片描述
    合并sub1参数:title_row = 1,end_row = 0
    在这里插入图片描述
    在这里插入图片描述

    2,合并《Excel·VBA按列拆分工作表》,sub2拆分后的工作表
    在这里插入图片描述
    合并sub2参数:title_row = 0,end_row = 0
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 为了提高VBA程序运行速度,我们一般会关闭屏幕更新,停止自动计算,如下: Application.ScreenUpdating = False Application.Calculation = xlManual 当返回自动计算模式时,系统自动把所有的公式计算一遍,即使不...
  • VBA 批量打开workbook工作簿,汇总到同一workbook工作簿中 ** 前言:此VBA程序用于,对母婴玩具行业的各一级维度的数据进行汇总。 Sub 收集文件夹中文件路径() Dim f '1.批量打开文件,将文件路径记录到数组f...
  • 使用情景:如题,将一个包含多工作表的工作簿拆分为单工作表工作簿文件 原始文件描述:【旺旺大礼包.xlsx】中有三个工作表,分别是旺仔牛奶、旺旺仙贝、旺旺小小酥 操作流程: 打开旺旺大礼包.xlsx——在菜单栏...
  • VBA从工作表另存为工作簿

    千次阅读 2020-08-13 17:07:10
    Application.ScreenUpdating = False '屏幕更新关闭 Application.DisplayAlerts = False '显示和预警提示关闭 Dim folder As String 'String字符串 folder = ThisWorkbook.Path & "\ 班级 " If Len(Dir...
  • 将某一文件夹下所有工作簿中的多张表单汇总到一个工作薄中的一张表单中 最终效果: 步骤流程: 完整代码: ========================================================================= 1、汇总当前...
  • 多个excel表自动合并到同一表格,该段vba代码的逐句拆解
  • 工作簿对象(Workbook)的SaveCopyAs方法 SaveCopyAs方法和SaveAs方法的区别 示例: 在许多时候,希望能够为工作簿创建一个备份,以防误操作而丢失数据。如何为当前工作簿自动备份一个副本至指定目录,并以日期和...
  • 打开关闭工作簿 示例 如图所示,在“数据库.xlsx”工作簿中存有“销售数据”,在相同目录下的工作簿 希望能够将该工作簿中该工作表中的数据读入以便进行下一步操作。该如何用VBA完成? 销售经理 区域 ...
  • 今天给大家介绍如何用vba批量给excel工作簿设置添加打开密码。今天的内容主要分为以下三个部分:手动设置添加打开密码;在vba中用工作簿Workbook对象的SaveAs方法设置添加打开密码;在vba中用工作簿Workbook对象的...
  • VBA在Excel中的应用用VBA将同一工作簿中不同工作表拆成独立文件问题描述1.在“开发工具”选项卡中选择”Visual Basic”2.插入模块运行结果可能存在的问题 用VBA将同一工作簿中不同工作表拆成独立文件 问题描述 有一...
  • VBA单元格、工作表、工作簿

    千次阅读 2019-04-30 23:08:35
    详解VBA单元格、工作表、工作簿各种表示、方法,注意事项。
  • 0 我觉得VBA和VB,VBS最大的区别就在A(application)上了 所以application里的 workbook , worksheet range ,cell等应该是VBA语言的核心,最复杂内容了 本身VBA里的VB语言部分,其实和很多语言语法结构也...
  • Workbooks 对象 Microsoft Excel 应用程序中当前打开的所有 Workbook 对象的集合。 说明 ...下例关闭所有打开的工作簿。 Workbooks.Close 使用 Add 方法可创建一个新空工作簿并将它添加到...
  • Fals '保存文件到某个路径,和文件名 xlsx格式 加上下面注释的,True为xls格式 ActiveWorkbook.SaveAs ipath & sht.Name ',True '删除第三个sheet Sheets(newwork.Worksheets(3).Name).Delete '关闭指定工作簿 ...
  • VBA-新建工作簿

    2020-02-26 12:09:43
    这节内容介绍如何应用VBA自动创建工作簿,并修改部分内容后保存关闭。和创建工作表类似,创建工作簿仍然使用add方法。下面是一个较为完整的创建例子: Sub addnewbook() Dim i As Integer Dim shtname As Variant ...
  • VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿
  • 复制指定目录下excel工作簿中同名工作表,该代码将在相同目录下创建汇总工作簿,各工作簿中同名工作表将被分别复制到汇总工作簿的不同表中(汇总工作簿中各工作表以分工作簿名命名)。 所有要汇总的工作簿在同一个...
  • 工作簿(workbook)汇总 打开一个文件 Set originalWb = Workbooks.Open(originalFileStr) 如果文件是带用户名和密码时,可以使用如下函数。 Set originalWb = Workbooks.Open(originalFileStr, 0, True, "用户名",...
  • 各位好,今日我们讲VBA代码的第三十一讲,如何新建EXCEL...在VBA中使用Add方法新建工作簿。一:ADD方法:使用Workbooks对象的Add方法创建新工作簿,其语法为:Workbooks对象.Add(Template)参数Template可选,确定如...
  • VBA工作簿操控备忘

    2017-06-22 22:38:08
    CreateFolder Method ...Required........Required....1、工作簿创建和保存: ...2、工作簿打开: ...'打开指定工作簿 ...Sub 关闭指定工作簿保存() Workbooks("Workbook").Close savechanges:=True End Sub
  • With Workbooks(1).ActiveSheet '第六行注释,当前Excel工作簿的第一个sheet页 For G = 1 To Wb.Sheets.Count '第七行注释,复制打开的Excel文件的sheet页到当前Excel文件,如果当前Excel文档为xlsx格式,此处...
  • 背景:一般情况下,打开Excel的文件类型为.xlsx,编写VBA代码后,关闭Excel,再次打开Excel后,代码消失 解决办法:更换文件类型,启用宏编辑 1.直接ctl+s保存VBA代码,弹出提示 2.根据弹框提示选择“否” 3.将...
  • (一)基础操作 1.新建工作簿 Sub 新建工作簿() Dim wbk As Workbook '定义wbk为工作簿对象,因为它是一个对象,所以下局用Set来赋值 ...wbk.SaveAs "c:\123.xls" '保存为C盘路径下的一个工作簿文件 End S...
  • Excel:Day04-VBA操作工作簿-For Each循环

    千次阅读 2020-06-18 20:57:44
    Workbooks工作簿对象 For Each 循环 第一块内容:For Each循环 Sub test1() Dim ge As Range'把变量ge定义为Range(rng)类型,单元格变量/区域变量 For Each ge In Range("A1:A10")'在单元格区域A1:A10范围内,...
  • ExcelVBA Workbook工作簿对象介绍

    千次阅读 2020-02-24 20:48:38
    Workbooks是所有工作簿对象组成的集合,而Wrokbook对象是Workbooks集合的一个成员。 1.引用集合中的工作簿 利用工作簿名引用工作...通过代码获得指定工作簿的名称、保存的路径等文件信息,示例代码如下。 Sub WbMsg...
  • 1 工作簿workbook 常用的事件 1.1 常用事件 workbook_open() workbook_WindowActivate() workbook_Windowresize() workbook_sheetchange() workbook_sheetselectionchange() workbook_beforesave() ...

空空如也

空空如也

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

vba保存关闭工作簿