Макрос 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 получение выходных данных высот строк легко перебирать с помощью строк.свойство 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
это приведет к тем же результатам, что и первый пример, но вы можете расширить его на столько столбцов, сколько хотите, нажав номер итерации и имя первого столбца Первого, который вы не хотите оценивать.
надеюсь, что это помогает!