» Copy row heights and column widths using VBA in Microsoft Excel
VBA macro tip contributed by Erlandsen Data Consulting offering Microsoft Excel Application development, template customization, support and training solutions
CATEGORY - Cells, Ranges, Rows, and Columns in VBA
VERSION - All Microsoft Excel Versions
With the macros below you can copy row heights and column widths from one range to another.
Private Sub CopyRowHeigths(TargetRange As Range, SourceRange As Range)
Dim r As Long
With SourceRange
For r = 1 To .Rows.Count
TargetRange.Rows(r).RowHeight = .Rows(r).RowHeight
Next r
End With
End Sub
Private Sub CopyColumnWidths(TargetRange As Range, SourceRange As Range)
Dim c As Long
With SourceRange
For c = 1 To .Columns.Count
TargetRange.Columns(c).ColumnWidth = .Columns(c).ColumnWidth
Next c
End With
End Sub
Example:
CopyColumnWidths(Range("E1:H1"), Range("A1:D1"))
CopyColumnWidths(Worksheets("Sheet2").Range("A1:D1"), _
Worksheets("Sheet1").Range("A1:D1"))
Book Store:
Recommended Books:
- Keys to Reading an Annual Report (Barron's Business Keys)
- The Analysis and Use of Financial Statements
- Monte Carlo Methods in Finance
- Rich Dad, Poor Dad: What the Rich Teach Their Kids About Money--That the Poor and Middle Class Do Not!
- Absolute Beginner's Guide to Microsoft Excel 2002
- Microsoft Office XP Introductory Concepts and Techniques
No comments have been submitted.

