在excel VBA中执行几个不相邻的COLUMNS的格式?

用我的代码,我想2执行几个不相邻的COLUMNS格式,我想在代码中优雅。 正如它应该是由书。 我正在学习,所以我想学习正确的方法。 这是我的任务是这样的:

在这里输入图像描述

我读过这个 我的意思是…真的没有办法枚举COLUMNS方法中的列字母? 没办法做到这一点?

那么我需要使用RANGE对象来执行我的任务吗? 这是对的吗?

如何将UNION方法与“With … End With”结合使用这是我的情况。 请详细解释比只有1,5行答复请详细。 我需要用列做相同的事情:B,C,G,H。他们将被格式化.NumberFormat = "#,##0.00"

 Option Explicit Dim VBA As Worksheet Dim Filter As String Dim Stock As Variant Dim Index As Variant Dim Portfolio As Variant ' Dim Date as Range Sub Columns_Formatting() Set VBA = Workbooks("kgh pricing model thursday.xlsm").Worksheets("VBA") Filter = "Pliki CSV, *.csv," & "Pliki TXT, *.txt," & "All Files, *.*" ' Stock = Application.GetOpenFilename(fileFilter:=Filter, FilterIndex:=1, Title:="Choose file with a stock prices") ' Index = Application.GetOpenFilename(fileFilter:=Filter, FilterIndex:=1, Title:="Choose file with an index values") ' If Stock = False Or Index = False Then MsgBox "Canceled": Exit Sub With VBA.Columns("A:A,F:F") ' here is the error = type mismath .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .NumberFormat = "yyyy-mm-dd;@" .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .ColumnWidth = 12 End With With VBA.Columns("A;F") .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .NumberFormat = "General" .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .ColumnWidth = 12 End With With VBA.Range("E2:E" & Rows.Count) .HorizontalAlignment = xlGeneral .VerticalAlignment = xlCenter .WrapText = True .NumberFormat = "#,##0" .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .ColumnWidth = 10 End With 

使用具有完整列引用的Range对象 。 您可能还想用Intersect方法将完整的列引用切割为Worksheet.UsedRange属性 。

 With VBA With Intersect(.UsedRange, .Range("A:A,F:F")) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True .NumberFormat = "yyyy-mm-dd;@" .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False .ColumnWidth = 12 End With End With