我有以下非常简单的宏来设置列的宽度,基于列号。
Sub aaa()
a = 2
lColor = RGB(191, 191, 191)
While a <= 396
Cells(1, a).EntireColumn.Select
If Cells(1, a).Interior.Color = lColor Then
Selection.ColumnWidth = 0.67
Else
Selection.ColumnWidth = 0.25
End If
Cells(1, a).Select
a = a + 1
Wend
End Sub
当列中没有合并的单元格时,它可以正常工作。但是,当存在合并的单元格时,它会选择合并单元格的所有列。
根据列号,有没有办法一次只选择一列?
答案 0 :(得分:2)
如果你避免“选择”应该有效,这一般是一个好主意。
另外我建议在这里使用For-Loop,这意味着您可能需要将Column-Count从396调整到395.
For a = 1 To 395
With Columns(a)
If (a) Mod 7 = 0 Or (a) Mod 6 = 0 Then
.ColumnWidth = 2
Else
.ColumnWidth = 0.25
End If
End With
Next a
答案 1 :(得分:2)
只是改变了你的代码:
Sub aaa()
Dim a As Integer
a = 2
While a <= 396
If (a - 1) Mod 7 = 0 Or (a - 1) Mod 6 = 0 Then
Cells(1, a).ColumnWidth = 0.67
Else
Cells(1, a).ColumnWidth = 0.25
End If
a = a + 1
Wend
End Sub