Я пытаюсь преобразовать все строковые даты в число для всего столбца. Исходя из этого Вопроса , я сначала попытался:
.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)) =CDate(.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)))
, затем я подумал, что мне может понадобиться значение, поэтому я попробовал следующее:
.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)).value =CDate(.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)).value)
.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)) =CDate(.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)).value)
.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)).value =CDate(.range(.cells(headerrow+1, ImpCol.column),.cells(LastRow, ImpCol.column)))
Итак, я провел еще какое-то исследование, нашел этот вопрос , и я предполагаю, что мне нужно go ячейка за ячейкой, поэтому я попытался настроить для каждого l oop:
'I tired both dims spearately, one at a time. just listing what I have tried.
Dim rngCell as range
Dim rngCell as variant
For Each rngCell In Source.Worksheets("Sheet1").Columns(ImpCol.Column)
If rngCell.Row > HeaderRow Then rngCell.Value = CDate(rngCell.Value)
Next rngCell
Когда я перехожу, ImpCol.Column имеет значение 7, как я и ожидал. Так как я просто предоставлял один столбец, я ожидал, что rngCell примет значение содержимого каждой ячейки по одному за раз. Вместо этого он захватывает весь столбец, выполняет одну проверку и не выполняет l oop.
. Я знаю, как это сделать в For X= HeaderRow +1 to LastRow
, но я не понимаю, как заставить FOR EACH
работать в этот случай.
Какую настройку мне нужно сделать, чтобы он прошел через каждую ячейку в FOR EACH
l oop?