底部的代码检查单元格(1,b)是否为空,然后在列中复制并对其上的列执行文本。但是我想检查列b是否为空而不是仅仅是第一个单元格。它应该是直截了当的,但我所做的任何改变都没有奏效。例如,我尝试过:
If Excel.WorksheetFunction.CountBlank(Excel.Sheets("TOP LINE").Columns(b)) <> 1048576 Then
b = b+1
而不是:
If Cells(1, b) <> "" Then b = b + 1
请帮助!
For a = 2 To 60
If Excel.WorksheetFunction.CountBlank(Excel.Sheets("Paste In").Columns(a)) <> 1048576 Then
Excel.Sheets("Paste In").Columns(a).Copy
b = Excel.Sheets("TOP LINE").Cells(1, Columns.Count).End(Excel.xlToLeft).column
Excel.Sheets("TOP LINE").Select
If Cells(1, b) <> "" Then b = b + 1
Excel.Sheets("TOP LINE").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
接下来
答案 0 :(得分:3)
您可以使用工作表函数计算列索引为a:
的列中的非空单元格 If Application.WorksheetFunction.CountA(Excel.Sheets("Paste In").Columns(a)) > 0 Then
你的代码中都有一个b作为b,请在两个实例中使用此代码:
第2行(If Excel.WorksheetFunction.CountBlank(Excel.Sheets("Paste In").Columns(a)) <> 1048576 Then
)变为:
If Application.WorksheetFunction.CountA(Excel.Sheets("Paste In").Columns(a)) > 0 Then
第6行(If Cells(1, b) <> "" Then b = b + 1
)变为:
If Application.WorksheetFunction.CountA(Excel.Sheets("TOP LINE").Columns(b)) > 0 Then