VBA выдает ошибку, предполагающую, что мне нужна константа. Я определяю ее за несколько строк до

#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 из функции / процедуры