Re: [算表] VBA 複製資料到另一個檔案

看板Office作者 (溫柔殺手N￾ ￾ ￾  )時間17年前 (2009/05/09 17:06), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串2/2 (看更多)
感謝版上臥虎藏龍的大大... 小弟成功了,事實上我是改了別人的作品。 不過也是跟大家分享一下。^^ 希望能拋磚引玉,讓越來越多人來討論VBA 但是此程式在跑的時候仍舊有兩個可以修改的地方,希望高手能協助指導,感謝。 1.檔案總管介面選擇之後選擇的檔名不會秀在檔案名稱中,可否讓他秀出來。 2.總覺得程式可以在精簡,因為主架構是網友的作品,在這樣的主架構底下,似乎只能這 樣寫,請問有辦法省掉For Each In嗎? --------------我是分隔線-------------------------- Sub Main() '宣告一個FileDialog物件的變數 Dim fd As FileDialog '建立一個資料夾選擇對話框的FileDialog物件 Set fd = Application.FileDialog(msoFileDialogFilePicker) '宣告一個容納每一個選擇的項目的變數. '即使我們知道路徑是字串, 這個變數還是要宣告成Variant, '因為For Each ...Next結構僅僅接受Variants 和 Object做為索引. Dim vrtSelectedItem As Variant '使用With...End With 區塊參照FileDialog物件. With fd '使用Show的方法顯示資料夾選擇對話框並且返回使用者的動作. '使用者按了確定按鈕. If .Show = -1 Then '測試結果AllowMultiSelect屬性對msoFileDialogFolderPicker參數無效, 也就是無法複選資料夾 .AllowMultiSelect = False '遍歷每一個選擇項目. For Each vrtSelectedItem In .SelectedItems 'vrtSelectedItem 是每個選項的路徑字串. '你可以依照你的需要處理返回的資訊, 此範例僅顯示路徑字串. 'MsgBox "The path is: " & vrtSelectedItem Dim obApp As New Excel.Application obApp.Workbooks.Open Filename:=vrtSelectedItem, ReadOnly:=True With obApp.Workbooks(1).Worksheets("Sheet1") For I = 1 To 22 Cells(I, 1) = .Cells(I, 1) Next I End With obApp.Workbooks.Close Set obApp = Nothing Next vrtSelectedItem '使用者按取消鈕. Else '什麼都沒做 End If End With '釋放物件. Set fd = Nothing End Sub --------------------------------Thank you for your attention---------------- ※ 引述《yimean (溫柔殺手N￾ ￾ ￾  )》之銘言: : 軟體:Excel : 版本:2003 : 我有兩個檔案,一個甲檔案,一個乙檔案 : 我想將VBA寫在甲檔案中,然後執行之後就去乙檔案中的某個位置複製資料 : 到甲檔案中的某個位置貼上,請問這應該要怎麼做? : 煩請高手指導,感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.104.47 ※ 編輯: yimean 來自: 123.195.104.47 (05/09 17:06)

05/09 22:48, , 1F
因為使用FileDialog,所以在選的時候不會顯示檔名
05/09 22:48, 1F

05/09 22:49, , 2F
你可以是看看excel的「開啟舊檔功能」,是一樣的
05/09 22:49, 2F

05/09 22:59, , 3F
另外,我測試了一下應該是可以多選才是,
05/09 22:59, 3F

05/09 23:00, , 4F
只是你的程式針對多寫沒有修改每個檔案寫的位置
05/09 23:00, 4F

05/10 09:43, , 5F
可是如果使用開啟舊檔功能的話,必須要先知道檔名
05/10 09:43, 5F

05/10 09:44, , 6F
我的情況多數時候不會知道等名跟位置。
05/10 09:44, 6F

05/10 09:45, , 7F
如果,不使用For Each架構,如何讓vertSelectItem存入位置
05/10 09:45, 7F
文章代碼(AID): #1A1KU8iy (Office)
文章代碼(AID): #1A1KU8iy (Office)