使用单行代码在VBA Excel中格式化多个范围

时间:2016-07-01 08:19:07

标签: excel vba excel-vba syntax format

如何使用单行代码在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这样的东西会起作用,但是发生了错误。

4 个答案:

答案 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)

或者你甚至可以命名范围,这取决于你:)