使用可变但行数相等的列格式化不同的列,并且列不相邻

Formatting disinct columns with Variable but equal number of rows, and the columns are not adjacent

我的数据有 10 多列,我想从中 select 三列,然后 进一步格式化这三列 ,但是没有。行数不固定,所以我无法同时 select 所有这三列。 这是我正在尝试做的事情

Dim lastrow As Long
lastrow = Range("A" & Rows.Count).End(xlUp).Row
Range("G2:H" & lastrow, "J2:J" & lastrow).Select

但这也是 select我的专栏。 我也试过了

Range("G2:H & lastrow, J2:J" &lastrow).select

但这给了我预期的错误。

使用时

Range("J2:J" & lastrow).Select 
With Selection
    .NumberFormat = "0"
    .Value = .Value
End With

数据格式正确,但我想对所有不相邻的三列执行此操作

但是如果我使用

 Intersect(Range("G:H, J:J"), Rows("2:" & lastrow)).Select
 With Selection
     .NumberFormat = "0"
     .Value = .Value
 End With

G 列和 H 列的格式正确,但 J 列的格式不正确,它为我提供了#NA 条目。

你必须遍历每个连续的范围,你可以通过Areas() 属性得到,如下:

Dim lastrow As Long
lastrow = Range("A" & Rows.Count).End(xlUp).Row
Dim area As Range

With Intersect(Range("G:H, J:J"), Rows("2:" & lastrow))
    .NumberFormat = "0"
    For Each area In .Areas
        area.Value = area.Value
    Next
End With