Чтобы ответить на ваш вопрос, вы получаете сообщение об ошибке, потому что вы пытаетесь выбрать диапазон, который не существует. Почему?
Range("SymbolsOUT").Select
означает на самом деле
'Select the range "SymbolsOUT" from the worksheet where your function is written
Me.Range("SymbolsOUT").Select
То, что вы действительно хотите, это
ActiveSheet.Range("SymbolsOUT").Select
Теперь, комментарий @JvdV совершенно прав: вы не делаетенужно использовать Select
и Activate
, чтобы добиться того, что вы делаете. Это делает код грязным, и, кроме того, это действительно боль для производительности:
Dim mycell as Range
Set mycell = Worksheets("TGDOut").Range("SymbolsOUT")
Do Until mycell.Value = ""
g_colTGDNames.Add mycell.Value
Set myCell = myCell.Offset(1, 0)
Loop