精华内容
下载资源
问答
  • VBA-新建工作簿

    2020-02-26 12:09:43
    新建工作簿 这节内容介绍如何应用VBA自动创建工作簿,并修改部分内容后保存关闭。和创建工作表类似,创建工作簿仍然使用add方法。下面是一个较为完整的创建例子: Sub addnewbook() Dim i As Integer Dim shtname ...

    新建工作簿

    这节内容介绍如何应用VBA自动创建工作簿,并修改部分内容后保存关闭。和创建工作表类似,创建工作簿仍然使用add方法。下面是一个较为完整的创建例子:

    Sub addnewbook()
        Dim i As Integer
        Dim shtname As Variant
        Dim newbook As Workbook
        Dim arr As Variant
        Dim sht As Worksheet
        
        shtname = Array("a", "b", "c", "d") '新建工作簿中工作表名称
        arr = Array("1", "2", "3", "4", "5", "6") '工作表中内容
        
        Set newbook = Workbooks.Add '创建工作簿
        With newbook
            .ActiveSheet.Name = shtname(0)
            For i = 2 To 4
                .Sheets.Add after:=.Sheets(newbook.Sheets.Count) '创建工作表
                .ActiveSheet.Name = shtname(i - 1) '更改工作表名字
            Next
            
            For Each sht In .Worksheets
                sht.Range("a1").Resize(1, 6) = arr '修改工作表中内容
            Next
            .SaveAs Filename:="D:\data\1.xlsx" '设置保存路径
            .Close savechanges = True '确定可以更改
        End With
    End Sub
    
    展开全文
  • 此脚本用于根据sheet1中的第一列从第三行开始的数据新建工作簿并重命名 '2.复制第一列和对应的列的值 '3.调整新建工作簿的列宽 ScreenUpdating = False '关闭屏幕刷新 Dim sCount As Long '列数 Dim sCol As ...
    Sub addRe()
        '1.此脚本用于根据sheet1中的第一列从第三行开始的数据新建工作簿并重命名
        '2.复制第一列和对应的列的值
        '3.调整新建工作簿的列宽
        ScreenUpdating = False '关闭屏幕刷新
        Dim sCount As Long     '列数
        Dim sCol As Long       '行数
    
        Dim rnG1 As Range '第一列区域
        Dim rnG2 As Range '第二列区域
        Dim rn As Range   '第一列的开头
        Dim arr1() '第一列的数组(静态)
        Dim arr2() '第二列的数组(动态)
    
        Set rn = Sheet1.Cells(2, 1) '读出新工作簿要用的第一列的开头
        Set rnG1 = Sheet1.Range(rn, rn.End(xlDown)) '读出新工作簿要用的第一列的区域
            sCount = Sheet1.Range("A2").CurrentRegion.Columns.Count - 1 '读出行数
            sCol = rnG1.Rows.Count '读行数
            arr1 = rnG1 '第一列
        Dim arrName() '名字数组
        ReDim arrName(sCount - 1) '调整数组大小
        
        For i = 1 To sCount
            
            Set rn = Sheet1.Cells(2, i + 1) '读出新工作簿要用的第二列的开头
            Set rnG2 = Sheet1.Range(rn, rn.End(xlDown)) '读出新工作簿要用的第二列的区域
            arr2 = rnG2 '转换为数组
            Sheet1.Activate
            Sheets.Add after:=ActiveSheet '新建工作簿
            
            ActiveSheet.Name = Sheet1.Cells(2, i + 1) '工作簿重命名
            arrName(i - 1) = ActiveSheet.Name '记录新建工作簿的名称
            ActiveSheet.Range(Cells(2, 1), Cells(sCol, 1)) = arr1 '第一列赋值
            ActiveSheet.Range(Cells(2, 2), Cells(sCol, 2)) = arr2 '第二列赋值
            
            Columns("A:B").EntireColumn.AutoFit '调整选中所有新建的工作簿AB列的列宽
        Next i
    
        Sheet1.Activate '回到Sheet1工作簿
        ScreenUpdating = True '打开屏幕刷新
    End Sub
    
    
    

    在我写完上面的代码之后很快就被啪啪打脸了:

    下面这个简单高效,结果一样还保留了格式。。。

    Sub fz()
        Dim a As Byte
        For a = 2 To Cells(2, Columns.Count).End(xlToLeft).Column
            With Sheets.Add(after:=Sheets(Sheets.Count))
                .Name = Worksheets(1).Cells(2, a)
                Worksheets(1).Select
                Worksheets(1).Columns(1).Copy .Range("a1")
                Worksheets(1).Columns(a).Copy .Range("b1")
            End With
        Next a
    End Sub
    

     

     

    表格内容大概是这样的:

         
    时间J2-01(JD0280)_位移(mm)J2-02(JD0267)_位移(mm)J2-03(JD0282)_位移(mm)J2-04(JD0275)_位移(mm)
    2019-07-30-0.14-0.24-0.2-0.26
    2019-07-29-0.14-0.24-0.2-0.26
    2019-07-28-0.14-0.23-0.19-0.26
    2019-07-27-0.14-0.23-0.19-0.26
    2019-07-26-0.13-0.23-0.19-0.26
    2019-07-25-0.13-0.23-0.18-0.25
    2019-07-24-0.13-0.22-0.18-0.25
    2019-07-23-0.13-0.22-0.18-0.25
    2019-07-22-0.13-0.22-0.17-0.24
    2019-07-21-0.13-0.22-0.17-0.25
    2019-07-20-0.12-0.21-0.16-0.24
    2019-07-19-0.12-0.21-0.15-0.24
    2019-07-18-0.12-0.2-0.14-0.23
    2019-07-17-0.12-0.21-0.16-0.24
    2019-07-16-0.12-0.2-0.14-0.23
    2019-07-15-0.11-0.19-0.12-0.22
    2019-07-14-0.11-0.19-0.11-0.21
    2019-07-13-0.1-0.18-0.11-0.21
    2019-07-12-0.11-0.19-0.12-0.21
    2019-07-11-0.11-0.19-0.12-0.22
    2019-07-10-0.11-0.19-0.11-0.21
    2019-07-09-0.1-0.18-0.1-0.21
    2019-07-08-0.1-0.18-0.1-0.21
    2019-07-07-0.1-0.18-0.1-0.21
    2019-07-06-0.1-0.18-0.1-0.21

    结果是这样的:

    展开全文
  • 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
    

    二、运行结果

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

    展开全文
  • 问题描述:若干个工作簿,每个工作簿里有一个工作表,如何利用VBA把若干工作簿里的表保存到一个新建工作簿里,并单独成表?
  • Sub Test()  Dim wb As Workbook  Set wb = Workbooks.Add(xlWBATWorksheet)  Set sht = wb.Worksheets("Sheet1")  wb.Close SaveChanges:=False Sub

    Sub Test()

      Dim wb As Workbook

      Set wb = Workbooks.Add(xlWBATWorksheet)

      Set sht = wb.Worksheets("Sheet1")

      wb.Close SaveChanges:=False

    Sub 

    展开全文
  • 代码实现的是从一个工作簿中单独保存其中一个工作表,并以单元格数据命名新工作簿名称
  • 创建新的 Workbooks 。创建的 workbook 名称为Book1,Book2,Book3依次递增 ...新工作簿将成为活动工作簿。 Sub AddOne() Workbooks.Add End Sub 创建新的 Workbooks 。创建的 workbook 名称为Allsales.xl.
  • 新建工作簿时一般会同时新建3张工作表,但实际工作中通常只使用一张,如果把这个默认值修改为1,更舒适。​话不多说,上图:点击Excel的菜单“文件”-“选项”,在对话框中的“常规”标签页中,设置上述内容:​...
  • 参考 参照以下文章学习练习 ...一 创建一个新工作簿,并写点东西进去 Sub create_new_wb() Dim wb As Workbook '这个定义可以不要,不知道后面会不会有问题 Dim sh As Worksheet '这个定义可以不要,不知道后...
  • 根据sheet1所列名称,添加并重命名新的工作表。 二、实现 1.按照从前往后的顺序 Sub cre_ren_sheets() Dim num% /* 定义为integer*/ num = Application.WorksheetFunction.CountA(Sheet1.Range("A:A")) /* num...
  • 工作簿对象(Workbook)的SaveCopyAs方法 SaveCopyAs方法和SaveAs方法的区别 示例: 在许多时候,希望能够为工作簿创建一个备份,以防误操作而丢失数据。如何为当前工作簿自动备份一个副本至指定目录,并以日期和...
  • 不过这样的代码只能判断本工作簿所在的文件夹中是否存在,我们可以输出fileName变量查看一下: C:\Users\Joshua\Desktop\测试\机密文件.xlsx vba就是用这个路径去查询机密文件.xlsx是否存在,如果机密文件...
  • Sub DetachWorkbook() On Error Resume Next Dim pathStr As String, i As Long, activeWb As String With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then pat...
  • 利用工作簿名引用工作簿,如已经打开了"Book1.xlsm"工作簿,那么Workbooks("Book1.xlsm")就代表这个工作簿对象。 2.访问对象的属性,获得工作簿文件的信息 通过代码获得指定工作簿的名称、保存的路径等文件信息,...
  • 即在工作簿中添加一个工作表,然后移出并存为新的工作簿,在移出前将本工作簿的一个模块的代码拷贝至新的工作簿。下面是关键代码: '====================================================================== ...
  • Sub 拆分到工作表到工作簿() Dim wk As Workbook, pt$, k% Application.DisplayAlerts = False For Each sht In ActiveWorkbook.Sheets k = k + 1 Set wk = Workbooks.Add Workbooks(1).Sheets(k)...
  • VBA-如何用代码打开工作簿

    万次阅读 2018-05-21 20:19:28
    1.代码很简单,只要把文件路径写清楚就好了Option ExplicitSub 打开工作表()Dim wb As WorkbookSet wb = Workbooks.Open(&...其他的工作簿操作Sub 其他作业()Dim w As Workbook'新建工作表 Set w = Workbooks.Add ...
  • VBA单元格、工作表、工作簿

    千次阅读 2019-04-30 23:08:35
    详解VBA单元格、工作表、工作簿各种表示、方法,注意事项。
  • EXCEL VBA创建sheet/工作簿

    万次阅读 2019-05-29 11:02:34
    With Workbooks.Add '新建工作簿 .SaveAs p & r(i, 1), xlWorkbookDefault '保存工作簿 .Close True '关闭工作簿 End With Next Application.ScreenUpdating = True Application.Display...
  • 批量合并excel工作簿中同名工作表,适用条件: 1、所有要汇总的工作簿在同一个文件夹中,这里以后缀为.xlsx为例; 2、需要合并的工作表名称相同(如: “sheet1”),且数据字段一样(如:A列表示序号,B列表示姓名,...
  • 1.新建工作簿 Sub 新建工作簿() Dim wbk As Workbook '定义wbk为工作簿对象,因为它是一个对象,所以下局用Set来赋值 Set wbk = Workbooks.Add '在Workbooks集合里新增这个工作簿 wbk.SaveAs "c:\123.xls" '保存...
  • Range("A" & x).Value Workbooks(Sname).Activate With Workbooks(Sname) .Sheets(1).name = Mid(Sname, 1, Len(Sname) - 5) '更改工作表名称 End With Sheets(1).Copy Before:=Workbooks("x.xlsx").Sheets(2) Next ...
  • VBA EXCEL 对象操作 - 新建工作

    万次阅读 2012-02-28 10:27:19
    From ... 新建一个工作表(Worksheet),要调用工作表(Worksheet对象)的Add方法(可以建制一个新建工作表的宏来查看相关的代码)。   如果我们想在当前工作表中新建一个工作表,代码可以
  • 目录 示例 实现代码 工作表对象(Worksheet)及其表示方法 1.序号表示法 2.工作表名称表示法 ...现希望按照模板的格式生成若干张工作表,各工作表以银行名称作为表格名称,并将该银行信息填入表内。如何用V...
  • 使用情景:如题,将一个包含多工作表的工作簿拆分为单工作表工作簿文件 原始文件描述:【旺旺大礼包.xlsx】中有三个工作表,分别是旺仔牛奶、旺旺仙贝、旺旺小小酥 操作流程: 打开旺旺大礼包.xlsx——在菜单栏...
  • VBA-保存指定工作表为工作簿文件

    千次阅读 2020-02-26 16:53:39
    如果需要将工作簿中的工作表单独保存为一个工作簿文件,可以使用 Worksheet 对象的 Copy 方法,将指定的工作表复制到一个新建工作簿。 Sub test() On Error GoTo line ActiveSheet.Copy '复制工作表为工作簿 ...
  • 各位好,今日我们讲VBA代码的第三十一讲,如何新建EXCEL...在VBA中使用Add方法新建工作簿。一:ADD方法:使用Workbooks对象的Add方法创建新工作簿,其语法为:Workbooks对象.Add(Template)参数Template可选,确定如...
  • 先讲工作簿和工作表的相关操作。 一、工作簿和工作表的相关操作 1、保存工作簿 Sub SaveWorkBooks() Dim book As Workbook For Each book In Workbooks 'path等于空说明是新文件,就不保存 If book.path <...
  • 2.使用压缩软件打开,进入xl目录找到vbaProject.bin文件,解压出来 3.使用Hex软件打开vbaProject.bin文件,查找DPB替换成DPx,保存文件,重新压缩,修改后缀名.zip为.xlsm 4.使用excel打开.xlsm文件,开发工具...
  • 在一些操作中,往往会需要将多个工作簿进行合并。一般的操作方法都是打开两个工作簿,然后选中需要移动的工作表,右键单击以后选择“移动或复制”。接下来在新的窗口里面进行设置就可以了。这种方法适合在移动数量较...

空空如也

空空如也

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

vba如何新建工作簿