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 评论是完全正确的:您不需要使用 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
我正在使用 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 评论是完全正确的:您不需要使用 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