作者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