我有幾個我想要合併的Excel文件。每個文件有17張,分別命名爲00,01,02,03等。 現在,我打開每個工作簿並嘗試將數據複製到一個文件中,該文件也有16個工作表,在工作表x上我想要從工作表x獲取來自所有其他工作簿的信息。複製另一個excel工作簿中的數據 - 而不是一張表複製所有這些數據
現在,我打開該文件,每個文件我有這樣的代碼:
For i = 0 To 16
Workbooks(nazwaPliku).Activate
zakladka = Right("0" & CStr(i), 2)
Sheets(zakladka).Activate
ileWierszy = Application.WorksheetFunction.Max(Sheets(zakladka).Range("B:B"))
wierszMin = Application.WorksheetFunction.Match("1", Sheets(zakladka).Range("B:B"), 0)
zakresDoKop = "A" & wierszMin + 1 & ":" & "I" & wierszMin + ileWierszy + 1 '1 wiecej dla bezpieczenstwa
Sheets(zakladka).Range(zakresDoKop).Resize(ileWierszy, 1).Value = rok & "_" & czesc
Sheets(zakladka).Range(zakresDoKop).Copy
ThisWorkbook.Sheets(zakladka).Activate
ThisWorkbook.Sheets(zakladka).Range("A" & wsk(i)).PasteSpecial
wsk(i) = wsk(i) + ileWierszy + 2
Next i
對於第一個文件,一切都很好(WSK = 2的所有表),但是當我打開下一個工作簿,奇怪的事情正在發生。例如,當i = 2時,代碼複製工作表02-16中的數據並粘貼到本工作簿中。更重要的是,我已經通過刪除工作簿中的工作表16進行了測試,並且當我在大於16時發生錯誤(因爲它缺少一張工作表)。我想也許我不太瞭解這裏的循環?
任何想法?我知道如何以不同的方式寫它,但因爲我花了最後4個小時試圖弄清楚事情的真相,所以我真的很想知道爲什麼會發生這種情況。
是否所有數據都按升序排列,以便Max始終獲得最後一行? –
是的,最大的行總是選擇正確 – kamila