底部的代碼將列從一個表單複製到另一個表單,並逐個將文本複製到列。例如,在處理了A列之後,列B(第一張)的文本到列過程應該從第二張表中的下一個可用空列開始。循環錯誤地粘貼在具有數據的列上
第一張表中的行具有不同的長度。因此,列A可能有單元格A1:A25已滿,但列N可能只有一些單元格已滿,因爲某些行已結束。
此代碼正常工作,直到它遇到第一個部分滿的列,然後它將列粘貼到同一列。
我認爲下面的線將照顧這,但它似乎並沒有工作:
If Application.WorksheetFunction.CountA(Excel.Sheets("Organise_R").Columns(b)) > 0 Then b = b + 1
我一直試圖在過去的幾個小時,但我已經沒有success.Any幫助將不勝感激!提前致謝!
For a = 1 To 60
'If Excel.WorksheetFunction.CountBlank(Excel.Sheets("Import_R").Columns(a)) < 1048576
If Application.WorksheetFunction.CountA(Excel.Sheets("Import_R").Columns(a)) > 0 Then
Excel.Sheets("Import_R").Columns(a).Copy
b = Excel.Sheets("Organise_R").Cells(1, Columns.Count).End(Excel.xlToLeft).column
Excel.Sheets("Organise_R").Select
'If Cells(1, b) <> ""
'If Excel.WorksheetFunction.CountBlank(Excel.Sheets("Organise_R").Columns(b)) < 1048576 Then
If Application.WorksheetFunction.CountA(Excel.Sheets("Organise_R").Columns(b)) > 0 Then b = b + 1
Excel.Sheets("Organise_R").Columns(b).EntireColumn.Select
Excel.ActiveSheet.Paste
Excel.Application.CutCopyMode = False
Selection.TextToColumns Destination:=Cells(1, b), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
End If
Next a
我的第一個問題是:)爲什麼你必須逐列複製? (當您可以根據您複製的範圍中使用的最大行復制所有列時。) – bonCodigo