我是 VBA 新手,刚开始自学。
当我尝试运行我的程序时...
Sub cpy()
range("k1:k12").Select
Selection.copy
Application.Goto Worksheets("Sheet1").range("m4").Select
ActiveSheet.Paste
End Sub
...我收到以下错误:Unable to get the selected property of the range class
.所以我尝试单独运行错误行:
Sub cck()
Application.Goto Worksheets("Sheet1").range("m4").Value
End Sub
它显示以下错误:Run-time error '1004': Reference isn't valid
.Excel 文件是新文件,包含 3 张工作表,工作表名称未更改。我试图在 Sheet3 上运行上述代码。
最佳答案
Application.Goto
本身已经选择,所以继续 Select
最后那样没有意义。 Application.Goto
执行一个 Action ——它进入某个范围,它不返回您需要选择的范围。
无论如何,解决错误的最佳方法是消除 Select
从你的代码。很少需要它。见 How to avoid using Select in Excel VBA .
即使那个链接的问题明确是关于 Select
, 适用于 Application.Goto
也是。两个Select
和 Goto
导致意大利面条代码。所有程序员都应该至少阅读一次的经典文章是Go To Statement Considered Harmful由 Dijkstra 提供。他没有Application.Goto
当然要记住,但它仍然适用。
关于excel - 如何解决 VBA 错误 "Unable to get the selected property of the range class ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67137910/