excel - 如何解决 VBA 错误 "Unable to get the selected property of the range class "

标签 excel vba

我是 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也是。两个SelectGoto导致意大利面条代码。所有程序员都应该至少阅读一次的经典文章是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/

相关文章:

java - 使用 Java Apache POI 在 Excel 中插入一行

vba - 即使有数据,具有多个条件的 MATCH 也始终返回 #NA

excel - "Concatenate If"按行的 VBA 用户定义函数

excel - 如果它们等于某物,则删除最后 3 个字符

vba - Excel vba : Type range and cell

excel - 基本 VBA 问题(整数)

excel - 从excel中的第一个单词中删除最后一个字符

excel - 索引/匹配多张纸中的多个结果

java - Excel Java 导入问题, header 签名无效?

vba - 如何使用 Worksheet.Function 在 VBA 中求负 SumIf