str*_*rks 14 excel vba excel-vba
ActiveSheet.UsedRange.Columns.Count - 8在vba中的含义是什么?
vba如何知道usedRange?
Ber*_*ier 19
这是UsedRange(MSDN参考)的确切定义:
每个Worksheet对象都有一个UsedRange属性,该属性返回一个Range对象,该对象表示正在使用的工作表区域.UsedRange属性表示工作表中最左上角和最左下角非空单元格描述的区域,并包括其间的所有单元格.
基本上,那条线的作用是:
.UsedRange - >在最外面的单元格周围"绘制"一个包含内容的框..Columns - >选择这些单元格的整个列.Count - >返回一个对应于有多少列的整数(在此选择中)- 8 - >从前一个整数中减去8.我假设VBA通过查找索引值最低和最高的非空单元来计算UsedRange.
最有可能的是,您收到错误,因为您的范围内的行数小于3,因此返回的数字为负数.
BernardSaucier已经给你一个答案.我的帖子不是答案,而是解释为什么你不应该使用UsedRange.
UsedRange是非常不可靠如图该处
要查找包含数据的最后一列,请使用.Find然后从中减去.
With Sheets("Sheet1")
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lastCol = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
Else
lastCol = 1
End If
End With
If lastCol > 8 Then
'Debug.Print ActiveSheet.UsedRange.Columns.Count - 8
'The above becomes
Debug.Print lastCol - 8
End If
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125053 次 |
| 最近记录: |