А
Dim C, S As Double — точно то же самое, что
Dim C As Double, S As Double?
-- Пт фев 24, 2017 19:48:57 --Из справки по VBA из Office 2007:
' Multiple declarations on a single line. AnotherVar is of type Variant
' because its type is omitted.
Dim AnotherVar, Choice As Boolean, BirthDate As Date
Т. е. не то же самое. У меня в экселе ваш код вообще пока не компилируется — ошибки компиляции в строках с вызовом
Math. Пока не пойму, какие именно.
-- Пт фев 24, 2017 20:02:30 --Виной были скобки: надо или
Call Math(x, C, S), или
Math x, C, S.
Потом, когда я убрал
As Double из определения
C (дописал это до исправления ошибки с вызовом
Math), возникла ошибка несовпадения типов аргумента, передаваемого по ссылке. Непонятно, в какой версии Excel этот код вообще работает, если это всё-таки VBA.