我正在使用 Excel 2010,尝试从范围构建集合,然后使用以下代码将其复制到另一个工作表中:
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
集合构建successfuly,但之后我切换工作表我得到了错误1004上线
Range("SymbolsOUT").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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句