底部的代码将列从一张纸单独复制到另一张纸,并将文本逐列执行。例如,在处理完 A 列之后,B 列(第一张纸)的“文本到列”过程应该从第二张纸的下一个可用空列开始。
第一张纸中的行具有不同的长度。因此,A 列的单元格 A1:A25 可能已满,但 N 列可能只有部分单元格已满,因为某些行已结束。
此代码工作正常,直到它遇到第一个部分完整的列,然后它继续将列粘贴到同一列中。
我认为下面的行会解决这个问题,但它似乎不起作用:
If Application.WorksheetFunction.CountA(Excel.Sheets("Organise_R").Columns(b)) > 0 Then b = b + 1
过去几个小时我一直在尝试,但没有成功。任何帮助将不胜感激!提前致谢!
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