使用宏查找Excel工作表中使用的列数

时间:2014-01-30 11:29:00

标签: excel-vba vba excel

我正在使用macros处理Excel工作表。

我想计算工作表中使用的列数。 我用过:

     ColLen = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column

在特定的工作簿上,它给出的值大于使用的列数。 在其他正常的Excel工作簿上,它给出了正确的值。
另一个命令是给出正确的列数值,即:ColLen = Activeworksheet.Cells(1, Columns.count).End(xlToLeft).Column

它的另一部分,即所用的行数,在所有纸张中给出正确的值。

RowLen = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.count).Row

任何线索在那张表中可能有什么问题?我无法解释我公司所说的细节。因此,可能很难回答,因为提问可能不合逻辑。如果您有任何想法,请告诉我们。

1 个答案:

答案 0 :(得分:2)

要获取列,最可靠的代码是: (它适用于所有情况)

Set rng = ws.Cells.Find(What:="*", _
            After:=ws.Range("A1"), _
            Lookat:=xlPart, _
            LookIn:=xlFormulas, _
            SearchOrder:=xlByColumns, _
            SearchDirection:=xlPrevious, _
            MatchCase:=False)

If rng Is Nothing Then
    LastCol = 1
Else
    LastCol = rng.Column
End If

`