Как использовать встроенную функцию Excel по модулю (MOD) в VBA? - PullRequest
0 голосов
/ 07 декабря 2018

Мои вопросы несколько связаны с этим постом .

Однако, скажем, я хочу использовать встроенную в Excel функцию MOD (по модулю) в VBA. Этот сайт предполагает, что использование Application.WorksheetFunction.[insert name of Excel function] даст желаемый эффект.

Однако Application.WorksheetFunction.MOD не работает.

На самом деле, когда я просто набираю Application.WorksheetFunction. в VBA появляется выпадающее меню со списком имен функций на выбор, но MOD в этом списке не предусмотрено!

2 вопроса:

  1. Что происходитздесь?
  2. Как я на самом деле использую встроенную в Excel функцию MOD в VBA?

Примечание: я начал по этому путиЯ пытаюсь получить 1.7 Mod 0.5 равным 0.2, используя функцию VBA Mod, но в результирующей ячейке Excel, к которой я применяю свою функцию VBA, получается #VALUE!.Однако, если я наберу MOD(1.7,0.5) непосредственно в Excel, я получу правильный ответ (т. Е. 0.2)

1 Ответ

0 голосов
/ 07 декабря 2018

Вы используете как есть, так как это оператор (с целыми числами).Используйте evaluate, если вы хотите использовать двойные и т. Д., Например,

Например,

Debug.Print 2 Mod 12
Debug.Print Evaluate("Mod(1.7,0.5)")
Dim x As Double, y As Double
x = 1.7
y = 0.5
Debug.Print Evaluate("Mod(" & x & "," & y & ")")

См. документацию .Есть ограничения с большими числами.Общий обходной путь от Microsoft:

=number-(INT(number/divisor)*divisor)
...