我希望能够使用某种for循环来设置Excel工作表中的列宽,这样我就不必输入每个要更改宽度的列。在这张图片的情况下,我希望所有黑色列的宽度为0.92,绿色为0.83,橙色为7.29,我希望这些继续超过我在此处显示的设定范围。下面是我使用的一般代码,但就像我说的,我不想输入每一列来改变宽度。
sub Set_Column_Width
Range("E:E, I:I, M:M, Q:Q, U:U, Y:Y, AC:AC, AG:AG, AK:AK, AO:AO, AS:AS, AT:AT, AX:AX").ColumnWidth = 0.92
Range("G:G,K:K,O:O,S:S").ColumnWidth = 0.83
Range("F:F, H:H, J:J, L:L").ColumnWidth = 7.29
End sub
答案 0 :(得分:2)
如果你正在做一个模式,你可以循环黑橙绿橙色。
for i = [first column] to [last column] step 4
Columns(i).ColumnWidth = 0.92
Columns(i+1).ColumnWidth = 7.29
Columns(i+2).ColumnWidth = 0.83
Columns(i+3).ColumnWidth = 7.29
next i
答案 1 :(得分:1)
使用Columns(index)
Dim i As Long
For i = 5 To 105 Step 4
Columns(i).Columwidth = 0.92
next i
For i = 6 To 106 Step 2
Columns(i).Columwidth = 7.29
next i
For i = 7 To 107 Step 4
Columns(i).Columwidth = 0.83
next i
另一种方法是根据索引确定宽度
For i = 5 To 100
'find you what width this column should have
Columns(i).Columnwidth = x
next i
这是假设宽度不是由颜色定义,而是由它们的位置
定义答案 2 :(得分:1)
虽然我不确定这些颜色是什么,但很容易找到。如果整个列是相同的颜色,您可以循环遍历列并查看第1行。像
for i = 1 to 1000 'or whatever your last column is
if cells(1, i).interior.color = rgb(255, 0, 0) then 'red, for example
cells(1, i).columnwidth = 0.83 'or whatever the column width needs to be here
else if cells(1, i).interior.color = rgb(...) then 'next color
cells(1, i).columnwidth = ... 'etc.
end if
next i