Я задавал тот же вопрос ранее здесь ( Для Loop JavaScript? VBA для примера ), но я не был достаточно конкретен, поэтому не получил ответ, который искал. Как я могу создать подобный код в JavaScript? Это может помочь https://poi.apache.org/apidocs/dev/org/apache/poi/ss/formula/functions/Offset.html
. Вот что я имею в виду, это сводный расчет затрат родителей и детей в VBA. В столбце I есть формула, которая находится в столбце H. Я хочу создать формулу, подобную этой в JavaScript.
Function ParentChildCalc(critCell As Range, valCell As Range) As Double
Dim numYes As Long
Dim i As Long
Dim temp As Double
Do Until i = 5000
If critCell.Offset(i, 0) = "Yes" Then numYes = numYes + 1 'If the cell below says "Yes" then this sums all the 'valCells' until that "yes"
If numYes = 2 Then Exit Do 'We only want to sum the numbers between each one of the "Yes's"
temp = temp + valCell.Offset(i, 0) 'see Console.log(temp) tab to see what temp does
i = i + 1
Loop
ParentChildCalc = temp
End Function
Вот мойлучший выстрел в JavaScript. Я планирую использовать это с Office.js. Я не знаю, как компенсировать.
/**
* ParentChildCalc1
* @customfunction ParentChildCalc1
* @param {string} critCell Critical Cell
* @param {number} valCell Value Cell
* @returns {number} ParentChildCalc1
*/
function ParentChildCalc1(critCell, valCell) {
var numYes = 1;
var i = 1;
var temp = 1;
while (i < 5000) {
if (critCell.getOffsetRange(i, 0) == "Yes") {
numYes++;
}
if (numYes == 2) {
break;
}
temp = temp + valCell.getOffsetRange(i, 0);
i++;
}
return temp;
}