Excel宏:是否可以找到工作表的行高和列宽?

时间:2010-09-23 13:40:38

标签: excel automation

有没有办法在没有手动点击并写下答案的情况下,在Excel工作表中找到ROWS的高度从1到50,以及COLUMNS从A到Z的宽度?

由于

迈克尔。

3 个答案:

答案 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

这将产生与第一个示例相同的结果,但是您可以通过增加迭代编号和您不想评估的第一个列的第一个列名称将其扩展到您想要的任意数量的列。

希望这有帮助!