有没有办法在没有手动点击并写下答案的情况下,在Excel工作表中找到ROWS的高度从1到50,以及COLUMNS从A到Z的宽度?
由于
迈克尔。
答案 0 :(得分:9)
添加@Parkyprg
Range("A1:A50").Height ' height of range
Range("A:Z").Width ' width of range
Range("A1:A50").Rows.Count ' number or rows in range
Range("A3").Height ' height of A3 cell
Range("A3").Width ' width of A3 cell
答案 1 :(得分:3)
在Excel VBA中,您可以使用以下内容:
Range("A1:A50").Height
和
Range("A:Z").Width
答案 2 :(得分:1)
在Excel vba中,获取行高的输出很容易使用rows.height属性进行迭代:
Sub outputRowHeight()
Dim i As Integer
For i = 1 To 50
Debug.Print Rows(i).Address & " is : " & Rows(i).Height
Next i
End Sub
对于列宽,我们使用columns.width属性。这有点棘手,因为你不能直接遍历字母表的字母,所以我们需要使用索引:
Sub outputColumnWidths1()
Dim i As Integer
For i = 1 To 26 '26th letter is Z
Debug.Print Columns(i).Address & " is : " & Columns(i).Width
Next i
End Sub
如果您想避免必须知道字母的索引,可以在超出范围时使用if语句退出:
Sub outputColumnWidths2()
Dim i As Integer
For i = 1 To 99 'using 99 as arbitrary high end number
If Columns(i).Address <> "$AA:$AA" Then
Debug.Print Columns(i).Address & " is : " & Columns(i).Width
Else 'once we get outside of A-Z, we want to end.
Exit For
End If
Next i
End Sub
这将产生与第一个示例相同的结果,但是您可以通过增加迭代编号和您不想评估的第一个列的第一个列名称将其扩展到您想要的任意数量的列。
希望这有帮助!