[問題] 將不同檔案的儲存格用VBA抓出來

看板Office作者 (沒事多潛水)時間14年前 (2012/02/10 20:08), 編輯推噓2(209)
留言11則, 2人參與, 最新討論串1/1
軟體:excel 版本:2010 大家好,小弟在網路上找到相關範本 做了一下修改,就是要將不同檔案的 儲存格彙整我要的資料(每個檔案有10幾筆要的) 想請教為什麼抓出來之後格子會跑掉 沒有按照檔的順序編排.... 還有出現空格的情形.. Sub test() Dim mypath As String, myfile As String Dim mybook As Workbook, wb As Workbook Dim mysh As Worksheet Application.ScreenUpdating = False Set mybook = ThisWorkbook Set mysh = mybook.ActiveSheet mypath = ThisWorkbook.Path & "\" myfile = Dir(mypath & "*.xls") Do Until myfile = "" If myfile <> mybook.Name Then Set wb = Workbooks.Open(mypath + myfile) wb.Sheets(1).Range("B2").Copy If mysh.[A3].Value = "" Then r = 3 Else r = mysh.[A65536].End(3).Row + 1 mysh.Cells(r, 1).PasteSpecial Paste:=xlPasteValues wb.Sheets(1).Range("B3").Copy If mysh.[B3].Value = "" Then r = 3 mysh.Cells(r, 2).PasteSpecial Paste:=xlPasteValues wb.Sheets(1).Range("B8").Copy If mysh.[C3].Value = "" Then r = 3 mysh.Cells(r, 3).PasteSpecial Paste:=xlPasteValues wb.Close savechanges:=False End If myfile = Dir Loop Application.ScreenUpdating = True MsgBox "Done!" End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.169.173

02/10 20:33, , 1F
r的判斷 只需要貼A欄時判斷一次就好 不用每欄貼上都判斷
02/10 20:33, 1F

02/10 20:36, , 2F
感謝大大,原來如此。
02/10 20:36, 2F

02/10 20:40, , 3F
最下面 loop [D1]有強制規定嗎,看不出來有啥作用
02/10 20:40, 3F

02/10 20:41, , 4F
那個只是選擇D1儲存格 無意義
02/10 20:41, 4F

02/10 20:42, , 5F
loop那行要留著 下面那行可刪除
02/10 20:42, 5F

02/10 20:45, , 6F
再看仔細後發現 判斷r的if可以全刪了... 改底下這行就好
02/10 20:45, 6F

02/10 20:48, , 7F
r = mysh.[A65536].End(3).Row + 1
02/10 20:48, 7F

02/10 21:06, , 8F
再次感謝..一次OK。我都看不懂只是亂試
02/10 21:06, 8F
※ 編輯: garacias 來自: 125.231.169.173 (02/10 21:10)

02/10 21:10, , 9F
那你也真夠強了 看不懂還可以弄出想要的功能 厲害! XD
02/10 21:10, 9F

02/10 21:13, , 10F
耐心試了一整天,才修成這樣
02/10 21:13, 10F

02/10 21:13, , 11F
上面是改好的,有需要的板友可以玩看看
02/10 21:13, 11F
※ 編輯: garacias 來自: 125.231.169.173 (02/10 22:19) ※ 編輯: garacias 來自: 125.231.169.173 (02/10 23:06)
文章代碼(AID): #1FDGZA02 (Office)
文章代碼(AID): #1FDGZA02 (Office)