2016-09-30 48 views
2

我的VBA中发生了一些变化,它不允许我完成某些例程。下面列出了一个非常简单的例子。如果有人遇到过这个问题,我将非常感谢任何支持解决这个问题。问题的工作表/范围选择(组合)不工作

  • 简单的例子:

当我使用下面的代码,它工作正常。

Sheets("Sheet1").Select 
Range("B3").Select 

当我将它们组合起来,我得到一个“1004”错误

Sheets("Sheet1").Range("B3").Select 

我检查参考/文档库并没有出现在这里已经改变。它必须是简单的东西,但我不能把它放在手指上。

+0

这真的应该工作......你在什么操作系统和Excel版本? – Hambone

+0

另外,您的代码是否在模块中,与工作表或其他地方相关联?我想如果这是在一个工作表中,我可以看到为什么这*可能*失败 – Hambone

回答

3

如果你绝对必须它的一行代码,然后交换选择为Application.GoTo这同时接受工作表和单元格范围。

application.goto range("Sheet1!B3") 

然而,几乎没有必要(且最经常适得其反)使用Range .Select方法来引用一个或多个细胞去努力。请参阅How to avoid using Select in Excel VBA macros了解如何避免依赖选择和激活来实现目标。

+0

感谢您的指导,并感谢您的支持。链接非常方便。我不敢相信我从来没有遇到过这个问题。再次感谢。 – user1624926

3

您已经有了答案:

  • 第一Select工作表
  • Select上工作的一系列

您的代码工作,如果你恰巧是在Sheet1当它是运行的,但如果你是而不是Sheet1会失败。 在我看来,VBA对于这个问题有点愚蠢。

+1

更准确地说,如果工作表没有被激活,你不能选择一个范围。听起来很公平恕我直言 – Pierre

+0

@Pierre你的解释比我的更好。 –

+0

谢谢加里:-) – Pierre