Перевод макроса Excel в скрипт Google Apps - PullRequest
1 голос
/ 11 октября 2019

Я использовал макрос в листе Excel для создания пользовательской функции округления для специального калькулятора. Я хочу загрузить лист калькулятора на свой диск Google, чтобы поделиться им в качестве ресурса. Тем не менее, язык Excel не переводится на язык скриптов Google Apps, и я не могу понять, как его настроить.

Я не эксперт по кодам, так как я скопировал базовый код из Excel ислегка подправили и, вероятно, повезло, что все заработало. Но я попытался перевести код для работы в скрипте приложений Google и так и не запустил его без ошибок.

Это код Excel, который дал мне успешную функцию.

Function pokeRound(pValue As Double) As Double

Dim LWhole As Long
Dim LFraction As Double

'Retrieve integer part of the number
LWhole = Int(pValue)

'Retrieve the fraction part of the number
LFraction = pValue - LWhole

If LFraction <= 0.5 Then
  pokeRound = LWhole
Else
  pokeRound = Round(pValue, 0)
End If

End Function

Это моя попытка перевода, которая не работает

function pokeRound() {
// Retrieve integer part of the number
var LWhole = (pValue);

// Retrieve the fraction part of the number
var LFraction = pValue - LWhole;
 If (LFraction <= 0.5)
   pokeRound = LWhole;
 Else
 (pokeRound = Round(pValue, 0));
};

Результатом этой функции является пользовательский метод округления. Обычное округление означало бы 88,5 округления до 89. Вместо этого эта функция округляет 88,5 до 88 и округляет 88,51 до 89. Может ли кто-нибудь помочь мне перевести это для работы в скрипте Google Apps?

1 Ответ

2 голосов
/ 12 октября 2019

Как насчет этого?

function pokeRound(v) {
  var v=v||1.63;
  var w=Math.floor(v);
  var f=v-w;
  if(f<=0.5) {
    return w;
  }else{
   return Math.round(v);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...