【问题标题】:find number of columns used in a excel worksheet using macro使用宏查找excel工作表中使用的列数
【发布时间】:2015-01-30 11:31:58
【问题描述】:

我正在使用 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

有什么线索可以在该表中出错吗?我无法解释我公司所说的细节。因此,可能很难回答,因为问起来可能不合逻辑。如果您有任何想法,请告诉。

【问题讨论】:

  • UsedRange 非常不可靠。使用.Find 查找列。请参阅THIS 链接以获取可以修改列的行。
  • HERE 是我真正在寻找的链接:)
  • @SiddharthRout 谢谢,它现在可以工作了 :)

标签: excel vba


【解决方案1】:

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

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

`

【讨论】:

    猜你喜欢
    • 2015-05-07
    • 1970-01-01
    • 2011-10-28
    • 2014-10-22
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多