ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 代码运行的时候,只能复制(金奥文件夹中的)一张表,其他的表复制不了

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-7-10 16:33 | 显示全部楼层 |阅读模式

求助:我用以下代码运行的时候,只能复制(金奥文件夹中的)一张表,其他的表复制不了,提示1004应用程序定以或对象定以错误,请问那个大神能给解决一下,我实在是看不明白怎么回事

Sub ss1()
Dim str As String
Dim i As Integer
Dim vb As Workbook
Dim e, j As Integer   'e是数据源表的最后一行,j是目标表(数据表)的最后一行
Dim sht As Worksheet
Application.DisplayAlerts = False
For Each sht In Sheets
   If file:///C:\Users\kinghand\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.pngsht.Name <> "Sheet1" Then
   sht.Delete
   End If
Application.DisplayAlerts = True
Next

str = Dir("C:\财务工作\财务工作\11.与刘洋相关\20230630财务报表\金奥\*.xls*")
For i = 1 To 100
Set vb = Workbooks.Open("C:\财务工作\财务工作\11.与刘洋相关\20230630财务报表\金奥\" & str)
vb.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Split(file:///C:\Users\kinghand\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.pngvb.Name, ".")(0)
vb.Close
str = Dir
If str = "" Then
Exit For
End If
Next
Sheet1.Delete
MsgBox "已处理完毕"
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-10 16:36 | 显示全部楼层
Sub ss1()
Dim str As String
Dim i As Integer
Dim vb As Workbook
Dim e, j As Integer   'e是数据源表的最后一行,j是目标表(数据表)的最后一行
Dim sht As Worksheet
Application.DisplayAlerts = False
For Each sht In Sheets
   If sht.Name <> "Sheet1" Then
   sht.Delete
   End If
Application.DisplayAlerts = True
Next

str = Dir("C:\财务工作\财务工作\11.与刘洋相关\20230630财务报表\金奥\*.xls*")
For i = 1 To 100
Set vb = Workbooks.Open("C:\财务工作\财务工作\11.与刘洋相关\20230630财务报表\金奥\" & str)
vb.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Split(vb.Name, ".")(0)
vb.Close
str = Dir
If str = "" Then
Exit For
End If
Next
Sheet1.Delete
MsgBox "已处理完毕"
End Sub

TA的精华主题

TA的得分主题

发表于 2023-7-10 17:20 | 显示全部楼层
报错不是可以点Debug吗,看哪句变黄了就可以查原因

TA的精华主题

TA的得分主题

发表于 2023-7-10 17:38 | 显示全部楼层
这个应该是Ai写的代码,人类应该不会这么写的。
没有附件,也无法看起。

TA的精华主题

TA的得分主题

发表于 2023-7-10 18:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
蔚蓝0827 发表于 2023-7-10 16:36
Sub ss1()
Dim str As String
Dim i As Integer

vb.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
这句又问题吧
改成vb.Sheets(i).Copy 试试

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-11 09:53 | 显示全部楼层
LIUZHU 发表于 2023-7-10 18:15
vb.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
这句又问题吧
改成vb.Shee ...

不行,试过了我怀疑是原始数据是XLSX格式的问题,但该怎么修改 不太清楚,您知道么,现在只能复制其中的一个文件里sheet

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-11 09:54 | 显示全部楼层
Peny2020 发表于 2023-7-10 17:20
报错不是可以点Debug吗,看哪句变黄了就可以查原因

没有变黄的,现在能复制一个表进去,其他的就复制不了了,我感觉是原始数据XLSX的问题,但是怎么修改,我不太会

TA的精华主题

TA的得分主题

发表于 2023-7-11 15:50 | 显示全部楼层
蔚蓝0827 发表于 2023-7-11 09:54
没有变黄的,现在能复制一个表进去,其他的就复制不了了,我感觉是原始数据XLSX的问题,但是怎么修改,我 ...

str = Dir("C:\财务工作\财务工作\11.与刘洋相关\20230630财务报表\金奥\*.xls*")
For i = 1 To 100
Set vb = Workbooks.Open("C:\财务工作\财务工作\11.与刘洋相关\20230630财务报表\金奥\" & str)
vb.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Split(vb.Name, ".")(0)

你这段是在金奥文件里有N 个文件 ,然后文件名和sheet名都是一样的?
还是说你指定了sheet名字而你的数据源又没按这个规定来命名?
那你看看是不是数据源里出现了不一样导致复制不了。
*.xls*应该包括了xlsx的文件的。
你没法上传附件,只能靠猜了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 00:30 , Processed in 0.044186 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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