С ссылка в комментарии : «Использование квадратных скобок (например,« [A1: C5] ») идентично вызову метода Evaluate со строковым аргументом."
Я прочитал это, чтобы означать:
Evaluate("20+10")
эквивалентно [20+10]
, где функция Evaluate берет строку и преобразует ее в буквальную интерпретацию перед оценкой.
но ["20+10"]
эквивалентно оценке строки "20+10"
Причина, по которой работает Debug.Print ["20"+"300"]
, заключается в том, что VBA отлично справляется с автоматическим преобразованием "20" в 20.