VBA合并单元格并设置高度



在我的电子表格中,我尝试水平合并两列中的单元格。合并后,我希望它们的总和宽度与前一列的宽度相同。

For i = 16 To 25
With ThisWorkbook.Worksheets(week_sheet_name)
.Rows(i).AutoFit
h = ThisWorkbook.Worksheets(week_sheet_name).Rows(i).RowHeight
.Range("V" & i & ":W" & i).MergeCells = True
.Columns(22).ColumnWidth = 40
.Columns(23).ColumnWidth = 30
.Rows(i).EntireRow.RowHeight = h
End With
Next

在这个循环中,它将行自动调整到完美的高度(循环前第22列的列宽为70(,之后我将高度保存在变量h中,并合并第I行的单元格V和W。列宽设置为40和30,总和与前一列相同。最后一步是应用行的高度,因为它以前是自动调整的。例如,在一个单元格中,autofit使其高度为144,在makro之后为264,这与如果我自动调整它的数量相同,但单元格宽度仅为40。

如果我只做一行(没有for循环(,它可以完美地工作。如果我不改变第22列的列宽,它也适用于循环,但我需要宽度为40。

我该怎么做?

如果我将.Columns(22).ColumnWidth = 40.Columns(23).ColumnWidth = 30移出循环,它就工作了。我现在的代码是

For i = 16 To 25
With ThisWorkbook.Worksheets(week_sheet_name)
.Rows(i).AutoFit
h = ThisWorkbook.Worksheets(week_sheet_name).Rows(i).RowHeight
.Range("V" & i & ":W" & i).MergeCells = True
.Rows(i).EntireRow.RowHeight = h
End With
Next
ThisWorkbook.Worksheets(week_sheet_name).Columns(22).ColumnWidth = 40
ThisWorkbook.Worksheets(week_sheet_name).Columns(23).ColumnWidth = 30

相关内容

  • 没有找到相关文章

最新更新