2013-07-22 3 views
1

Я пытаюсь запустить Rungenkutta дифференциальную задачу в Excel VBA программа выглядит следующим образомVBA Excel Ошибка компиляции: Ожидаемая Sub, Function или свойство

Sub Rungenkutta() 


Dim Noofitrations As Integer 
Dim n As Integer 
Dim ii As Integer 
Noofitrations = Cells(2, 10) 
n = Cells(3, 10) 
h = Cells(3, 4) 
col = 8 
x0 = Cells(col, 9) 
y0 = Cells(col, 10) 

For i = 1 To Noofitrations 

Cells(7, 3) = x0 
Cells(7, 4) = y0 
xn = x0 + h 
yn = y0 + Cells(18, 3) 

ii i Mod n 
If ii = 0 Then 
    col = col + 1 
    Cells(col, 9) = xn 
    Cells(col, 10) = yn 
End If 
x0 = xn 
y0 = yn 

Next 


End Sub 

, но во время работы я получаю «VBA Excel ошибка компиляции: Ожидаемое Sub, Function или свойство»

Я не понимая, что я должен сделать, чтобы запустить программу

+0

Означает ли это указание на строку вашего кода при ее отсутствии? –

+0

'ii i Mod n' не является законным VBA - должно ли это быть' ii = i Mod n' вместо? – barrowc

ответ

2

Ваша проблема с оператором Mod. VBA не распознает предоставленный вами синтаксис.

Вот некоторая документация для оператора Mod - http://msdn.microsoft.com/en-us/library/se0w9esz.aspx

оператор Th Mod является бинарным оператором и требует один левый и один правый аргумент.

Вам нужно изменить

ii i Mod n 

в

ii = i Mod n 

Вот пересмотренный пример вы предоставили.

Sub Rungenkutta() 


Dim Noofitrations As Integer 
Dim n As Integer 
Dim ii As Integer 
Noofitrations = Cells(2, 10) 
n = Cells(3, 10) 
h = Cells(3, 4) 
col = 8 
x0 = Cells(col, 9) 
y0 = Cells(col, 10) 

For i = 1 To Noofitrations 

Cells(7, 3) = x0 
Cells(7, 4) = y0 
xn = x0 + h 
yn = y0 + Cells(18, 3) 

ii = i Mod n 
If ii = 0 Then 
    col = col + 1 
    Cells(col, 9) = xn 
    Cells(col, 10) = yn 
End If 
x0 = xn 
y0 = yn 

Next 


End Sub