1 excel(vba) 如何导表 提高效率 ? 学会这个方法,你会有大把时间喝咖啡

1.自动处理工作表之 新建工作簿

在这里插入图片描述

Sub qqq()
	'读取表名,赋值给str1
    For i = 2 To 5
    str1 = Range("g" & i)
	'选择内容,数据透视表中按车间选择
    ActiveSheet.PivotTables("数据透视表2").PivotFields("车间").ClearAllFilters
    ActiveSheet.PivotTables("数据透视表2").PivotFields("车间").CurrentPage = str1
    Range("I5:K18").Select
    Selection.Copy
    
   '录制宏中不获得新建工作簿(Excel文件)
    Workbooks.Add
    ActiveWorkbook.Sheets("Sheet1").Select
   	Range("A1").Select
    ActiveWorkbook.ActiveSheet.Paste
    
    '保存的路径名称
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path + "\" + str1 + ".xlsx"
    ActiveWindow.Close
   'debug一下路径
    Debug.Print ThisWorkbook.Path
    '+ "\" + str1 + ".xlsx"
    
   ' 结束后回到原工作表
    Windows("车间数据bbbbb.xlsx").Activate
    Sheets("Sheet1").Select
    
    Next
End Sub

结果 自动新建了4个表格文件


在这里插入图片描述

2.自动处理工作表之 新建工作表

在这里插入图片描述

Sub aaaa()
For i = 2 To 5
Dim car As String
'选中表格
'让表格中 gI 的值等于car
Sheets("Sheet1").Select
    car = Range("g" & i)
'录制宏获取透视表筛选代码
    ActiveSheet.PivotTables("数据透视表2").PivotFields("车间").ClearAllFilters
    ActiveSheet.PivotTables("数据透视表2").PivotFields("车间").CurrentPage = car
    Range("I5:K17").Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
'更改表名
    Sheets(i).Name = car
    Next
End Sub

结果 直接在表内生成4个sheet工作表

在这里插入图片描述

3.自动处理工作表之 新建到 Word文档

Sub a1()
For i = 1 To 4
    'case
    '创建应用
    Set wdapp = CreateObject("word.application")
    '创建Word文档
    wdapp.documents.Add
    '显示应用
    wdapp.Visible = True
    num = Application.CountIf(Range("a:a"), Range("f" & i))
    '创建表格
    wdapp.documents(1).Tables.Add Range:=wdapp.Selection.Range, NumRows:=num + 1, NumColumns:=4
    '更改样式
    wdapp.documents(1).Tables(1).Style = "浅色底纹 - 强调文字颜色 3"
    '创建第一行的标题头
    n = 1
    For j = 1 To 4
    wdapp.documents(1).Tables(1).Range.Cells(n) = Cells(1, j)
    n = n + 1
    Next
    
    '内容搬运模块
    For k = 2 To Application.CountA(Range("a:a"))
        If Range("a" & k) = Range("f" & i) Then
            For m = 1 To 4
            wdapp.documents(1).Tables(1).Range.Cells(n) = Cells(k, m)
                n = n + 1
            Next
        End If
    Next
    
'另存为
wdapp.documents(1).SaveAs ThisWorkbook.Path + "\" + Range("f" & i) + ".docx"
'退出
wdapp.Quit

Next
End Sub

在这里插入图片描述
在这里插入图片描述
练习资源地址:https://pan.baidu.com/s/1Y3d0n0BSkRk8CUwr8o-CIA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Captain_Data

打赏一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值