Ошибка 1004 Цикл по диапазону для получения максимальной даты - PullRequest
1 голос
/ 19 февраля 2020

Я сейчас изучаю VBA и не могу понять это. Я пытаюсь посмотреть максимальную дату в диапазоне (W: A C) каждой строки и поместить результат в ячейку "BU" той же строки. Я получаю ошибку 1004 в строке, определяющей, в какую ячейку поместить результат. Я получаю ошибку, потому что я определил диапазон как W: A C?


Sub Max_Date()
Dim MaxDate As Date
Dim CellRange As Range
Dim Source As Worksheet: Set Source = ActiveWorkbook.Sheets("Sheet1")
Dim row As Variant
row = Source.Rows.Count

Set CellRange = Source.Range("W:AC")


For Each row In CellRange


 MaxDate = Application.WorksheetFunction.Max(CellRange)
 Range("BU").Value = MaxDate

Next row

End Sub



1 Ответ

1 голос
/ 19 февраля 2020

Как упоминал SJR, вы не можете вставить значение в строку. Но вы также смотрите на максимум во всем диапазоне, а не только в ряду. Используйте целое число (здесь я), чтобы go через каждую строку.

Это должно к хитрости

Sub Max_Date()
Dim MaxDate As Date
Dim i As Double
Dim Source As Worksheet: Set Source = ActiveWorkbook.Sheets("Sheet1")
Dim row As Variant
row = Source.Rows.Count

For i = 1 To row

 MaxDate = Application.WorksheetFunction.Max(Source.Range("W" & i & ":AC" & i))
 Range("BU" & i).Value = MaxDate

Next

End Sub
...