Я пытаюсь применить формулу, где мне нужно сослаться на несколько ячеек слева от ячейки формулы и несколько ячеек вверх и применить формула вниз по столбцу для нескольких строк.
Я пытаюсь достичь результата с помощью функции смещения, но не получаю желаемого результата.
Sub ResultAchievedIsNotAsRequired()
Dim variableA As Long
variableA = Worksheets("DATA").Range("D7").Value
Dim LeftRow As Long
LeftRow = ActiveCell.Offset(0, -1).Value
Dim Upperrow As Long
Upperrow = ActiveCell.Offset(-1, 0).Value
Dim q As Long
Worksheet("MyCalculation").Range("B4").Select
For q = 4 To 50
Selection.Value = (ActiveCell.Offset(0, -1).Value * (2 / (VariableA + 1)) + ActiveCell.Offset(-1, 0).Value * (1 - (2 / (VariableA + 1))))
ActiveCell.Offset(1, 0).Activate
Next
End Sub
=== =
Мне очень жаль, что мое inte rnet соединение отключилось на пару дней.
Я должен был бы сформулировать вопрос немного точнее.
- Ячейка B3 должна иметь значение = = среднее от A1 до A3.
- Ячейка B4 должна вычислить: (значение ячейки A4 * (2 / (8 + 1)) + значение ячейки B3 * (1-2 / (8 + 1) )))
- Ячейка B5 должна вычислить: (значение ячейки A5 * (2 / (8 + 1)) + значение ячейки B4 * (1-2 / (8 + 1)))
- Ячейка B6 должна вычислять: (значение ячейки A6 * (2 / (8 + 1)) + значение ячейки B5 * (1-2 / (8 + 1)))
- и т. Д. …. Вниз по столбцу
Прикрепленный снимок экрана был только для того, чтобы привести пример подобного Проблема, когда расчеты были почти одного и того же характера, хотя столбец, указанный в формуле, был другим. Я даже пытался изменить значение на формулу, но результаты совпадают, и значения не настраиваются автоматически.
Я вставляю формулу в текстовом формате, как рекомендовано. Под «желаемым результатом» я имею в виду числа, рассчитанные VBA. не такие, как рассчитывается по формуле. Расчеты VBA неверны.
Приведенное выше изображение было только показательным для аналогичного случая.
После небольшого приближения у меня возникают мысли, может ли использование массива с Redim preserve решить эту проблему, в В любом случае?
Решено @Faneduru. Проблема заключалась в использовании Activecell вместо rng, а не в select.