【发布时间】:2019-09-14 02:01:13
【问题描述】:
我正在使用命名范围(主要在工作表 2 中),并且正在创建一个名为“注册”的工作表中的摘要。我主要是剪切和粘贴在程序的其他部分工作的代码。由于某种原因,VBA 不会在工作表 2 中选择范围。
在下面的代码中,“SignupPairs”是工作表“Signups”中的一个范围,“NewMem”是“Sheet2”中的一个范围。
''''''''''
MsgBox "SignupPairs 2,1 " & Range("SignupPairs")(2, 1)
Range("SignupPairs")(2, 1).Select
MsgBox "NewMem 1,1 " & Range("NewMem")(1, 1)
'Sheets("Sheet2").Range("NewMem")(1, 1).Select 'Doesn't work.
Range("NewMem")(1, 1).Select
''''''''''
前四行已添加用于调试目的。最后一行是让我突然停下来的那一行。第四行试图具体说明我想使用的工作表;它没有用。 MsgBox 正确报告了“SignupPairs”和“NewMem”中单元格的内容,但我无法选择 NewMem(1,1) 来执行“Range(Selection, Selection.End(xlDown)).Rows.Count.
对于加分:是否有人有一个链接或参考,以获得关于 VBA 的良好入门或手册,这样我就可以自学而不必问这些简单的问题? VBA for Dummies 只会让我陷入困境。
附:在 VBA 编辑器中单击“选择”上的“F1”会将我转到“选择案例”页面,这似乎是一个死胡同。
【问题讨论】:
-
阅读此stackoverflow.com/questions/10714251/… 您无法选择非活动工作表上的单元格,因此您必须先激活工作表或使用
application.goto。 -
由于这些是命名范围,您还可以将它们的数据直接获取到 vba 中的数组中,例如 'ThisWorkbook.Names("SignupPairs)..RefersToRange.Value`
-
@jessi 这将是一个很棒的、值得投票的答案!
-
我从我的评论中创建了一个答案。我希望它可以帮助运营商推进这个项目。感谢@MathieuGuindon 的鼓励