Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5460|回复: 11

[已解决]初学者走投无路,求高手帮扶~

[复制链接]
发表于 2014-10-11 19:52 | 显示全部楼层 |阅读模式
本人想将制定文件夹下的所有CSV文件执行以下操作:
1)后台打CSV文件,将文件里面所有数据复制
2)将复制后的CSV数据粘贴到M7220-X-R(0).XLS表格Sheet(“RAW DATA”)中
3)在M7220-X-R(0).XLS工作簿中执行另存为操作,另存为名称为第五行字符串的内容
注:此操作要求的是每个CSV文件都执行: 数据复制-->数据粘贴到指定工作簿-->在指定工作簿里进行另存为的操作,在指定工作簿里,每后一个CSV数据全部覆盖第前面一个CSV数据,而不是在前一个CSV数据后进行添加累计!

本人所遇到的难点:a)如何将CSV文件数据进行复制,以前写过worksheet固定时,对工作表数据进行复制的
                                b)后一个CSV数据在制定工作簿中(M7220-X-R(0))如何全部替换前一个CSV数据,并且执行另存为操作
            
希望店家能够集思广益,帮帮忙~
代码写了点,关键步骤断路了 T  T
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim a, c As String, b As Integer, wb As Workbook
a = InputBox("a=", "请输入日期")
b = InputBox("b=", "请输入程序名")
Dim path As String
f = Dir("D:\徐俊" & "\" & a & "\" & b & "\" & "*.CSV")
i = 1
Do While f <> ""
Workbooks.Open Filename:="D:\徐俊" & "\" & a & "\" & b & "\" & f
Set wb = GetObject(f)


i = i + 1
f = Dir
Loop
Application.ScreenUpdating = True
End Sub
                                                                 
最佳答案
2014-10-12 13:22
帮帮忙.zip (15.39 KB, 下载次数: 10)
QQ截图20141011193452.jpg

数据.zip

52.14 KB, 下载次数: 3

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-10-11 22:49 | 显示全部楼层
你试试:

M7220-X-R(0).zip (30.14 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2014-10-12 10:45 | 显示全部楼层
su45 发表于 2014-10-11 22:49
你试试:

真是太佩服了!!!给你32个赞~,很复杂的问题,被你几行代码就给解决了,运行之后我将代码改了下,想在模版名称(M7220-X-R(0).xls)上面有所改动,设计了一个用户界面,想让CSV文件数据粘贴到动态的模版名称里,才写了一点,程序运行时就报错了
Workbooks.Open Filename:="D;\徐俊\模板\*.xls" & c
请问前辈如何解决呢?
wb.Sheets(1).Cells.Copy sh.Cells
这是你写的代码,没理解错的话是执行了数据复制与粘贴的操作,这是简写吗,能方便讲解一下这行代码吗?

帮帮忙.zip

13.3 KB, 下载次数: 3

回复

使用道具 举报

发表于 2014-10-12 11:34 | 显示全部楼层
Workbooks.Open Filename:="D;\徐俊\模板\*.xls" & c

报错是肯定的,D 后面应是 : 而不是;(分号)!

另,不知你的 c 是什么意思?为什么在最后?是不是想用 *.xls* ?
回复

使用道具 举报

发表于 2014-10-12 11:37 | 显示全部楼层
wb.Sheets(1).Cells.Copy sh.Cells

是将一张表的所有单元格复制到另一个表的所有单元格
回复

使用道具 举报

 楼主| 发表于 2014-10-12 11:58 | 显示全部楼层
su45 发表于 2014-10-12 11:34
Workbooks.Open Filename:="D;\徐俊\模板\*.xls" & c

报错是肯定的,D 后面应是 : 而不是;(分号)!

c就是CSV数据粘贴的目标工作簿名称,昨晚固定了目标工作簿的名称即M7220-X-R(0).XLS,现在想通过输入c值,可以随便的选择我需要的模版名 例:C=M7220-X-R(0)orM7221-X-R(0)orM8269-X-R(0)······
回复

使用道具 举报

发表于 2014-10-12 13:22 | 显示全部楼层    本楼为最佳答案   
帮帮忙.zip (15.39 KB, 下载次数: 10)
回复

使用道具 举报

 楼主| 发表于 2014-10-12 15:30 | 显示全部楼层
su45 发表于 2014-10-12 13:22

代码改过之后还是跟早上出现了相同的问题 T   T~
QQ截图20141012152853.jpg
QQ截图20141012152943.jpg
回复

使用道具 举报

发表于 2014-10-12 16:58 | 显示全部楼层
把 * 删除试试,咱改时忘删了
回复

使用道具 举报

 楼主| 发表于 2014-10-12 17:44 | 显示全部楼层
su45 发表于 2014-10-12 16:58
把 * 删除试试,咱改时忘删了

其实那我也试了,一样的结果,后来将代码尝试着改了下,碰巧对了!
old写法:Set wb1 = Workbooks.Open("D:\徐俊\模版\" & c & ".xls")
new写法:Set wb1 = Workbooks.Open("D:\徐俊\模版\" & c & "." & "xls")
更换new写法后,程序就运行正确了,不过我也不清楚这是为啥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 21:13 , Processed in 0.495596 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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