ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 自动化错误

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-9-21 13:04 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请各位老师帮忙,看看这个模块哪里出错了?谢谢
  1. Sub Macro1()
  2.     Dim MyPath$, MyName$
  3.     Dim target As Workbook
  4.     Dim Source As Workbook
  5.     Dim name1 As String
  6.     Dim x As Integer
  7.     Dim y As Integer
  8.     Application.ScreenUpdating = False
  9.    
  10.     MyPath = "D:\工作文档\学习资料\excel表格\2018 实测"
  11.     MyName = Dir(MyPath & "*.xls")
  12.    
  13.     name1 = "D:\工作文档\学习资料\excel表格\2018 实测\hisdatatest.xlsx"
  14.     Set target = Workbooks.Open(name1)
  15.    
  16.     Do While MyName <> ""
  17.             Set Source = Workbooks.Open(MyPath & MyName)
  18.             
  19.             Call hisdata

  20.             Source.Sheets("sheet3").Range("a1", Range("a1").End(xlDown).Offset(1, 3)).Copy
  21.             
  22.             
  23.             target.Sheets(3).Activate
  24.             x = target.Sheets("sheet3").Range("A65536").End(xlUp).Row
  25.             
  26.             For i = 1 To x + 1
  27.             If target.Sheets("sheet3").Range("a" & i) = "" Then
  28.             y = i
  29.             End If
  30.             Next
  31.             
  32.             'Application.Goto Sheets(1).Range("A1")
  33.             target.Sheets("sheet3").Range("a" & y).Select
  34.             Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  35.                 :=False, Transpose:=False
  36.             target.Close False
  37.             Source.Close True
  38.             MyName = Dir
  39.         Loop
  40.     Application.ScreenUpdating = True
  41.     MsgBox "ok"
  42. End Sub
复制代码





TA的精华主题

TA的得分主题

发表于 2018-9-21 14:48 | 显示全部楼层
欢迎新会员!
没有附件不能测试代码。
建议上传Excel表格附件来说明问题。
没有表格附件的求助帖很少能获得满意的回复。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-21 15:15 | 显示全部楼层
蓝桥玄霜 发表于 2018-9-21 14:48
欢迎新会员!
没有附件不能测试代码。
建议上传Excel表格附件来说明问题。

谢谢老师。
我想把多个xls文件中的数据提取,汇总到hisdatatest.xlsx中。
宏hisdata() 是我手动录制的,方法很笨
现在的问题是,每个xls的sheet3中数据怎样复制添加到hisdatatest.xlsx中?
sheet3中,蓝色数据是我想要的
1.5
90.51
5.5
0.17
0.18
90.34
9.5
0.23
0.26
90.28
13
0.24
0.35
90.27
15
0.23
0.39
90.28
17
0.31
0.45
90.2
2
0.27
0.35
90.24
23.5
0.24
0.26
90.27
25
0.19
0.14
90.32
90.51
90.51
90.51
90.51


我使用的是copy,总是出错,请老师指教。

启用宏.zip

78.19 KB, 下载次数: 0

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-21 15:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
顶顶顶。。。

TA的精华主题

TA的得分主题

发表于 2018-9-21 15:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
MyPath = "D:\工作文档\学习资料\excel表格\2018 实测"

TA的精华主题

TA的得分主题

发表于 2018-9-21 15:55 | 显示全部楼层

MyPath = "D:\工作文档\学习资料\excel表格\2018 实测\"

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-21 15:57 | 显示全部楼层
微笑12345 发表于 2018-9-21 15:55

MyPath = "D:\工作文档\学习资料\excel表格\2018 实测\"

谢谢回复。我试一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-21 15:58 | 显示全部楼层
微笑12345 发表于 2018-9-21 15:55

MyPath = "D:\工作文档\学习资料\excel表格\2018 实测\"

还是报错了,

TA的精华主题

TA的得分主题

发表于 2018-9-21 19:04 | 显示全部楼层
  1. Sub Macro1()
  2.     Dim MyPath$, MyName$
  3.     Dim target As Workbook
  4.     Dim Source As Workbook
  5.     Dim name1 As String
  6.     Dim x As Integer
  7.     Dim y As Integer
  8.     Application.ScreenUpdating = False
  9.    
  10.     MyPath = "D:\工作文档\学习资料\excel表格\2018 实测"
  11.     MyName = Dir(MyPath & "*.xls*")
  12.    
  13.     name1 = "D:\工作文档\学习资料\excel表格\2018 实测\hisdatatest.xlsx"
  14.     Set target = Workbooks.Open(name1)
  15.    
  16.     Do While MyName <> ""
  17.             Set Source = Workbooks.Open(MyPath & MyName)
  18.             
  19.             Call hisdata
  20.             
  21.             Source.Activate  'Source原来不是活动工作表,需要先变成活动工作表

  22.             Source.Sheets("sheet3").Range("a1", Range("a1").End(xlDown).Offset(1, 3)).Copy
  23.             
  24.             
  25.             target.Sheets(3).Activate
  26.             x = target.Sheets("sheet3").Range("A65536").End(xlUp).Row
  27.             
  28.             For i = 1 To x + 1
  29.             If target.Sheets("sheet3").Range("a" & i) = "" Then
  30.             y = i
  31.             End If
  32.             Next
  33.             
  34.             'Application.Goto Sheets(1).Range("A1")
  35.             target.Sheets("sheet3").Range("a" & y).Select
  36.             Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  37.                 :=False, Transpose:=False
  38.             target.Close False
  39.             Source.Close True
  40.             MyName = Dir
  41.         Loop
  42.     Application.ScreenUpdating = True
  43.     MsgBox "ok"
  44. End Sub
复制代码


你再试试,估计应该可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-21 21:35 | 显示全部楼层
微笑12345 发表于 2018-9-21 19:04
你再试试,估计应该可以了

谢谢回复,还是报错了,在36行,range.select 无效
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 00:43 , Processed in 0.025741 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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