如何使用单行代码在VBA Excel中格式化多个单元格范围的数字,对齐,字体,边框,填充,保护等?例如,我有以下代码
With Sheets("Sheet1")
.Columns("A").ColumnWidth = 15
.Columns("C").ColumnWidth = 15
.Columns("G").ColumnWidth = 15
.Range("A:C").Font.Color = vbRed
.Range("G:G").Font.Color = vbRed
End With
我可以改为(伪代码):
With Sheets("Sheet1")
.Columns("A", "C", "G").ColumnWidth = 15
.Range("A:C", "G:G").Font.Color = vbRed
End With
我认为像.Columns(Array("A", "C", "G")).ColumnWidth = 15
这样的东西会起作用,但是发生了错误。
答案 0 :(得分:5)
请尝试:
.Range("A:A, C:C, G:G").ColumnWidth = 15
和
.Range("A:C, G:G").Font.Color = vbRed
答案 1 :(得分:1)
您可以使用范围数组
dim rng as Excel.Range
set rng=array(range("C:C"),range("E:E"),range("G:G"))
或使用类似的函数,如果使用数组,它仍然有效。
public function CustomFormat(rng as excel.range)
rng.ColumnWidth = 15
rng.interior.color=vbRed
end function
答案 2 :(得分:1)
您甚至可以将Union
用作:
With Sheets("Sheet1")
Union(.Columns("A"), .Columns("C"), .Columns("G")).ColumnWidth = 15
Union(.Columns("A:C"), .Columns("G")).Font.Color = vbRed
End With
答案 3 :(得分:1)
或者你甚至可以命名范围,这取决于你:)