我正在使用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
任何线索在那张表中可能有什么问题?我无法解释我公司所说的细节。因此,可能很难回答,因为提问可能不合逻辑。如果您有任何想法,请告诉我们。
答案 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
`