[英]Excel 2010 VBA Copy Data from Multiple Excel Files
我進行了搜索,並進行了搜索,結果接近但不完美。 來了...
我需要的是一個代碼,可以連續處理其他excel工作簿並復制數據。 這些文件將被命名為1,2,3,4等,最多約60個最大值。 我有一些代碼可以為我打開所有運行良好的文件。 接下來,我需要它進入所有工作簿並復制設置的數據,然后將其返回到我同樣能夠執行的主工作簿中。 這是我的問題...
我知道必須有一種方法可以一次編寫代碼並使它在其余文件中正常工作。 IE瀏覽器 如果第一個文件名為1.csv,代碼可以說要在1.csv上執行,然后在1.csv + 1上執行2.csv,然后循環出來嗎? 似乎應該可以做到。 我不想通過編寫相同的代碼從1.csv一直復制到60.csv來手動完成工作
如果有一種循環的方式,那么我該如何結束。 IE瀏覽器一個星期可能有37個文件,接下來的40個,依此類推。 我希望它從文件1.csv開始並工作,直到到達最后一個活動文件37.csv或60.csv,然后在沒有38.csv文件的情況下結束。
這是我擁有的基本記錄代碼。
Public Sub testr()
Dim filenum As Integer
Dim lastrow As Long
filenum = 1
On Error GoTo my_handler
Do
Windows(filenum & ".CSV").Activate
Range("A25").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Windows("test.xlsm").Activate
Range("A1").Select
lastrow = Worksheets("Data").Cells(1, 1).End(xlDown).Row
ActiveSheet.Paste
filenum = filenum + 1
Loop
my_handler:
MsgBox "All done."
Exit Sub
End Sub
任何人都可以給我的幫助將是驚人的! 提前謝謝〜
您可以嘗試將所有這些包裝在DO ... LOOP中。 如果您不知道將使用多少個.csv文件,只需將其放入錯誤處理程序中,以在找不到更多文件時退出。
您可以使用字符串串聯來更改文件名:例如,使用名為filenum的變量,如果filenum = 1,則filenum&“ .csv”將為“ 1.csv”,如果filenum = 2,則filenum&“ .csv”將是“ 2.csv”等
例如:
Public Sub testr()
Dim filenum As Integer
filenum = 1
On Error GoTo my_handler
Do
Windows(filenum & ".CSV").Activate
'rest of code goes here
filenum = filenum + 1
Loop
my_handler:
MsgBox "All done."
Exit Sub
好的,對於您現在擁有的代碼,您至少需要進行編輯以使其看起來像這樣:
Public Sub testr()
Dim filenum As Integer
filenum = 1
On Error GoTo my_handler
Do
Windows(filenum & ".CSV").Activate
Range("A25").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Windows("test.xlsm").Activate
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
filenum = filenum + 1
Loop
my_handler:
MsgBox "All done."
Exit Sub
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.