Excel - 在另一个工作表上选择范围

Excel - selecting range on another worksheet

我正在使用 Excel 2010,尝试从范围构建 collection,然后使用以下代码将其复制到另一个工作表中:

Set g_colTGDNames = New Collection

Worksheets("CONF").Activate
Range("TGDNames").Select
Do Until ActiveCell.Value = ""
    g_colTGDNames.Add ActiveCell.Value
    ActiveCell.Offset(1, 0).Select
Loop

Worksheets("TGDOut").Activate
Range("SymbolsOUT").Select
For Each obj In g_colTGDNames
    ActiveCell.Value = CStr(obj)
    ActiveCell.Offset(1, 0).Select
Next

Collection 构建成功,但是在切换工作表后我得到了 error 1004 在线

Range("SymbolsOUT").Select

我不知道为什么,它在我构建时有效 collection。有什么想法吗?

为了回答您的问题,您收到一个错误,因为您尝试 select 一个不存在的范围。为什么?

Range("SymbolsOUT").Select

实际上是

'Select the range "SymbolsOUT" from the worksheet where your function is written
Me.Range("SymbolsOUT").Select

你真正想要的是

ActiveSheet.Range("SymbolsOUT").Select

现在,@JvdV 评论是完全正确的:您不需要使用 SelectActivate 来实现您正在做的事情。它使代码变得混乱,而且对性能来说真的很痛苦:

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