Я пытаюсь заполнить #N/A
s в таблице значений путем усреднения значений в столбце значений. Логика заключается в том, что из местоположения #N/A
используйте два указателя, чтобы найти следующие 2 не #N/A
значения выше и ниже определенного значения, а затем усредните их, чтобы заполнить #N/A
. Вот код: -
Sub generate_NA_cutoffs()
Worksheets("Final cutoffs2").Activate
Dim i As Integer, j As Integer
Dim fwd As Integer, rev As Integer
Dim o As Integer
o = 15
For j = 3 To j = 6 'Go column-wise
For i = 7 To i = 12 ' Go row-wise
If i = 7 And Application.WorksheetFunction.IsNA(Cells(i, j).Value) = True Then
Cells(i, j + o).Value = 0
ElseIf i = 12 And Application.WorksheetFunction.IsNA(Cells(i, j).Value) = True Then
Cells(i, j + o).Value = 1
ElseIf Application.WorksheetFunction.IsNA(Cells(i, j).Value) = True Then
fwd = i + 1
rev = i - 1
Do While Application.WorksheetFunction.IsNA(Cells(fwd, j).Value) = True
fwd = fwd + 1
Loop
Do While Application.WorksheetFunction.IsNA(Cells(rev, j + o).Value) = True
rev = rev - 1
Loop
'take the avg of 2 non NA values
Cells(i, j + o).Value = (Cells(fwd, j).Value + Cells(rev, j + o).Value) * 0.5
Else
Cells(i, j + o).Value = Cells(i, j).Value
End If
'i = i + 1
Next i
'j = j + 1
Next j
End Sub
Данные выглядят следующим образом:
O - смещение между 3-м столбцом слева и 3-м столбцом 3-й таблицы на изображении. Предполагается, что эти два цикла заполняют таблицу 3, используя значения в таблице 1. Я пробовал варианты Do While и While, но это тоже создает ту же проблему. Нет ошибки, о которой сообщается, просто нет выходных данных после первого столбца после запуска.
Может ли кто-нибудь помочь мне понять, что здесь происходит или чего мне здесь не хватает.
Пожалуйста, дайте мне знать, если мне нужно добавить описание проблемы.
Спасибо большое!