Форматирование разделенных столбцов с переменной, но равным количеством строк, причем столбцы не являются смежными
Мои данные имеют более 10 столбцов, и из этого я хочу выбрать три столбца и отформатировать эти три столбца, но нет. строк не зафиксированы, поэтому я не могу выделить все эти три столбца одновременно. Вот что я пытаюсь сделать
Dim lastrow As Long
lastrow = Range("A" & Rows.Count).End(xlUp).Row
Range("G2:H" & lastrow, "J2:J" & lastrow).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.
1 ответ
Решение
Вы должны пройти через все смежные диапазоны, которые вы можете получить с помощью 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