Я создал несколько макросов для анализа данных о дожде из аэропорта.Макросы работают нормально, когда я печатаю их вручную в каждую ячейку.
Когда я копирую макросы вниз по столбцам, новые строки корректно заполняются формулой макроса и ссылочными ячейками.Однако в качестве значения для ячейки отображается и задается значение из первой ячейки, в которую я скопировал формулу.
Например, C5 имеет формулу: «= twoday (B5)» иимеет значение 0,2.Когда я скопирую, я хочу, чтобы C6, C7 и т. Д. Отображали «= twoday (B6)», «= twoday (B7)» и т. Д. И они показывают, но они также показывают значение 0,2, но должны показывать другоезначение.Когда я щелкаю по ячейке, затем по строке формул и нажимаю клавишу ввода, она правильно показывает желаемое значение.
Вместо того, чтобы нажимать клавишу ввода в 4000 ячеек, как правильно скопировать макросы вниз по столбцам?Я попытался проверить настройки расчета для автоматического / ручного (и с помощью F9), и пробовал оба безрезультатно.Что-нибудь еще, что я могу попробовать?
Вот код:
Public Function twoday(rain_current_day)
'Allow x to be the range of cells that we check for the rain data
'Offset = row, column
Dim x As Range
Set x = Range(ActiveCell.Offset(-1, -1), ActiveCell.Offset(, -1)) 'adjacent
cell (left) and 1 cell up (2 data points total)
'find out if any of the important rows are blank or text data
If IsNumeric(x.Cells(1, 1)) And Not IsEmpty(x.Cells(1, 1)) Then
twoday = WorksheetFunction.Sum(x)
Else
twoday = ""
End If
End Function