1

底部的代码检查单元格 (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

下一个

4

1 回答 1

3

您可以使用 worksheet 函数计算列索引为 a 的列中的非空单元格:

If Application.WorksheetFunction.CountA(Excel.Sheets("Paste In").Columns(a)) > 0 Then

您的代码中既有 a 也有 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

于 2012-11-07T13:18:49.053 回答