Макрос Excel: можно ли найти высоты строк и ширины столбцов листа?

есть ли способ найти высоту строк от 1 до 50 и ширину столбцов от A до Z на листе Excel без ручного нажатия и записи ответа?

спасибо

Михаил.

3 ответов


добавить поверх @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

в Excel VBA вы можете использовать что-то вроде этого:

Range("A1:A50").Height  

и

Range("A:Z").Width

в Excel vba получение выходных данных высот строк легко перебирать с помощью строк.свойство 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

для ширины столбца, мы используем столбцы.свойство 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

это приведет к тем же результатам, что и первый пример, но вы можете расширить его на столько столбцов, сколько хотите, нажав номер итерации и имя первого столбца Первого, который вы не хотите оценивать.

надеюсь, что это помогает!