作者lalalada (神的小羊)
看板Visual_Basic
标题[VBA ] 开启档案的路径随回圈改变的问题
时间Mon Jul 16 16:47:52 2012
以下是我的程式码
Dim code As String, address As String, book As Workbook, As Worksheet
For x = 1 To 10
Worksheets.Add
code = str(Sheets("Datasource").Cells(x + 1, 6).Value)
On Error Resume Next
ActiveSheet.name = code
msgbox code
address = "C:\" + code + ".csv"
msgbox address
Set book = Application.Workbooks.Open(address)
ActiveSheet.Range("A1:G5000").Copy
Windows("Trading.xls").Activate
Range("A1").Select
ActiveSheet.Paste
Windows("2498").Close
Next
本来是希望能够由回圈自动打开档案
并复制资料然後贴到对应的活页簿里
目前碰到的问题在於我没办法用上述方式指定路径
用.Open("C:\2498.CSV")可以正确执行所有功能
但是将路径指定成变数之後则无法 即.Open(address)
用msgbox检查code跟address变数 显示出来却又是对的
请问该怎麽办呢? 感谢!!
------------------------------------------------
经过了n小时的努力终於找到症结点了!
关键在於str()函数会再转换成字串後自动加一个空格在左边...
难怪我显示出来觉得间距有点宽= =
必须改用CStr()
感谢大家的帮忙!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.24.104
1F:→ Catbert:workbook.open filename:=address 07/16 17:29
2F:→ MOONRAKER:连接字串不要用 + ,改用 & 。注意 & 前後一定要留空白。 07/16 17:29
3F:→ MOONRAKER:嗯,抱歉,这招好像没用。 XD 07/16 17:30
4F:→ lalalada:感谢楼上两位 然後试了一楼那个方法也无法Q_Q 07/16 17:40
5F:→ knstt:windows("2498").close改为 book.close false 07/16 23:32
※ 编辑: lalalada 来自: 140.112.24.54 (07/17 15:14)
6F:→ MOONRAKER:喔,Str()那是BASICA的余毒,用format()也可以避过 07/17 15:51
7F:→ lalalada:原来如此@@! 07/17 16:38
8F:→ MOONRAKER:那一个空白是用来放正负号的 当时(1980年代)他们设计没 07/17 20:42
9F:→ MOONRAKER:正负号的时候也留下那个空白 後来为了相容性一直保留 07/17 20:42
10F:→ lalalada:哇噢 你好博学@@ 那麽久以前的事了呢 07/17 23:33
11F:→ MOONRAKER:小时候玩过而已。摸的还我青春… >(=) 07/18 01:11
12F:→ lalalada:XD 07/18 15:58