#vba #excel
#vba #excel
Вопрос:
По общему признанию, я новичок в VBA. Я просматривал похожие проблемы, но я не понимаю, идентична ли моя проблема.
Вот соответствующая часть моего кода:
Dim T As Double 'the root being sought
Dim F As Double
Dim dFdT As Double
Dim DeltaT As Double
Const Tol = 0.0000001 'convergence tolerance
Dim Iter As Integer
'Permit a maximum of 10 iterations
n = 10
If R = 0 Then
For Iter = 1 To n
F = Xr - Vo * T
dFdT = -Vo
DeltaT = F / dFdT
If Abs(DeltaT) < Tol Then GoTo Solution
T = T - DeltaT
Next Iter
MsgBox "No root found", vbExclamation, "PolyRoot result"
При попытке получить доступ к этой формуле я получаю следующую ошибку:
http://i.imgur.com/D7rX8lV.png
Ошибка компиляции, требуется постоянное выражение «
Что я делаю не так?
РЕДАКТИРОВАТЬ: мне нужно было двоеточие после Then в «Затем перейти к решению»
Использование «Then: Goto Solution» устранило мою проблему. Извините, что не предоставил достаточно подробностей. Я предположил, что это можно будет диагностировать из предоставленной информации.
Комментарии:
1. Ваш код не компилируется на моей машине, различные символы не определены, такие как
Xr
иVo
. Пожалуйста, укажите версию вашего кода, которая используетOption Explicit
, и, пожалуйста, также укажите начальные значения дляT
,F
,dFdT
, иDeltaT
.2. извлеките const из функции / процедуры