ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1812|回复: 12

VBA

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-26 13:02 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请教老师问题

汇总结算表.zip

9.24 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2022-11-26 15:27 | 显示全部楼层
Sub 导出()
Application.ScreenUpdating = False
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Sheets("资料导出表")
    gzb = .[l2]
    gzbb = .[l3]
    If gzb = "" Or gzbb = "" Then MsgBox "请输入导入文件信息!": End
    lj = ThisWorkbook.Path & "\"
    f = Dir(lj & gzbb & ".xls*")
    If f = "" Then
        .Copy
        Set wb = ActiveWorkbook
        With wb.Worksheets(1)
            .Name = gzb
            .Columns("k:l").Delete
            For Each shp In .Shapes
                shp.Delete
            Next shp
        End With
        wb.SaveAs Filename:=lj & gzbb & ".xlsx"
        wb.Close
    Else
        Set wb = Workbooks.Open(lj & f, 0)
        For Each sh In wb.Worksheets
            d(sh.Name) = ""
        Next sh
        If Not d.exists(gzb) Then
            .Copy after:=wb.Worksheets(wb.Worksheets.Count)
            With wb.Worksheets(wb.Worksheets.Count)
                .Name = gzb
                .Columns("k:l").Delete
                For Each shp In .Shapes
                    shp.Delete
                Next shp
            End With
        Else
            wb.Close False
            MsgBox gzb & "已经存在,不能重复导出!": End
        End If
        wb.Close True
    End If
End With
Application.ScreenUpdating = True
MsgBox "ok!"
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-11-26 15:28 | 显示全部楼层
结算表导出表.rar (13 KB, 下载次数: 22)

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-26 17:36 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-26 18:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
小星光 发表于 2022-11-26 17:36
高手!太爽了!非常感谢!

老师你好:
我写漏了一句。
根据L3工作簿名称“明细表”及L2工作表名称,将A1至H列的数据导入对应工作表,如果对应的工作簿明细表里面没有相应的工作表名称则自动添加工作表并导入,如果对应的工作簿明细表里面有相应的工作表名称则直接覆盖导入。谢谢你老师!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-27 08:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
小星光 发表于 2022-11-26 18:46
老师你好:
我写漏了一句。
根据L3工作簿名称“明细表”及L2工作表名称,将A1至H列的数据导入对应工作表 ...

老师你好:“如果对应的工作簿明细表里面有相应的工作表名称则直接覆盖导入”这个问题能帮我处理一下吗,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-27 10:47 | 显示全部楼层
小星光 发表于 2022-11-27 08:28
老师你好:“如果对应的工作簿明细表里面有相应的工作表名称则直接覆盖导入”这个问题能帮我处理一下吗, ...

请大家老师帮帮忙!“如果对应的工作簿明细表里面有相应的工作表名称则直接覆盖导入”这个问题能帮我处理一下吗,谢谢!

TA的精华主题

TA的得分主题

发表于 2022-11-27 20:13 | 显示全部楼层
Sub TEST()
    Dim strFileName$, strPath$, wkb As Workbook, wks As Worksheet, strName$, shp As Shape
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set wks = Sheets(1)
    strName = [L2]
    strPath = ThisWorkbook.Path & "\"
    strFileName = strPath & [L3] & ".xls"
           Set wkb = Workbooks.Open(strFileName)
           wks.Copy after:=Worksheets(Worksheets.Count)
           If bIsWorksheetExist(strName) Then Worksheets(strName).Delete
           Worksheets(Worksheets.Count).Name = strName
           For Each shp In ActiveSheet.Shapes
              shp.Delete
           Next
           wkb.Close True
    Set wkb = Nothing
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    Beep
End Sub
Public Function bIsWorksheetExist(wksName As String) As Boolean
    On Error Resume Next
    bIsWorksheetExist = Sheets(wksName).Name = wksName
End Function


TA的精华主题

TA的得分主题

发表于 2022-11-27 20:14 | 显示全部楼层
请参考附件。。。

汇总结算表.rar

18.53 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-27 20:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gwjkkkkk 发表于 2022-11-27 20:14
请参考附件。。。

老师您好:这代码非常好,但我想能不能导出时限制在A至H列。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 18:36 , Processed in 0.035069 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表