Как использовать квадратные скобки для оценки строки в VBA? - PullRequest
0 голосов
/ 02 мая 2018

Используя квадратные скобки для вычисления строки, я пытаюсь заставить [inputString] вернуть 320. Есть идеи как это сделать?

Public Sub TestMe()

    Dim inputString As String
    inputString = "20+300"
    Debug.Print Application.Evaluate(inputString)   'ok
    Debug.Print Evaluate([inputString])             'ok
    Debug.Print [20+300]                            'ok
    Debug.Print ["20"+"300"]                        'ok
    Debug.Print ["20"+300]                          'ok
    Debug.Print [inputString]                       'returns "20+300" and not 320

End Sub

1 Ответ

0 голосов
/ 02 мая 2018

С ссылка в комментарии : «Использование квадратных скобок (например,« [A1: C5] ») идентично вызову метода Evaluate со строковым аргументом."

Я прочитал это, чтобы означать:

Evaluate("20+10") эквивалентно [20+10], где функция Evaluate берет строку и преобразует ее в буквальную интерпретацию перед оценкой.

но ["20+10"] эквивалентно оценке строки "20+10"

Причина, по которой работает Debug.Print ["20"+"300"], заключается в том, что VBA отлично справляется с автоматическим преобразованием "20" в 20.

...