以前用于工作的Excel 2007 VBA语法参数不再存在

时间:2013-06-07 21:09:51

标签: vba excel-vba excel

我希望这不是之前提出的问题。而且我真的希望有什么不对的,我不只是错过了一些东西......

我在Excel 2007中创建一个宏来清除工作簿中的输入范围。我正在使用CommandButton启动它,程序在一个模块中。使用如下语法:

Worksheets("Interview").Range("D6:D17").ClearContents

工作得很好。但是,如果我尝试在同一张纸上选择或激活一个范围而不先选择纸张,我会得到:

错误1004(选择Range类的方法失败)

以下内容无法选择范围

Worksheets("Interview").Range("B17").Select (除非在选择表格后)

    Worksheets("Interview").Select
    Range("B17").Select


    With Worksheets("Interview")
        .Range("B17").Select
    End With

使其工作的唯一方法是选择工作表,然后使用完整语句选择范围。像这样:

    Worksheets("Interview").Select
    Worksheets("Interview").Range("B17").Select

我很困惑。我希望不是因为我累了......

我希望我已经足够清楚并且正确地使用了代码标签和块等......

3 个答案:

答案 0 :(得分:1)

我会举一个例子&希望能帮助到你。

考虑一个有3个房间(房间1,房间2和房间3)的房子。 每个房间都有风扇和风扇的开关板。光在里面。

现在 要打开/关闭房间1的灯光,您可以按下房间1中的按钮(您必须在房间1中按下按钮)。
要打开/关闭房间2的灯光,您可以按下房间2中的按钮(您必须在房间2中按下按钮)。
要打开/关闭3号房间的灯光,你可以按下3号房间的按钮(你必须在3号房间按下按钮)。

如果您在1号房间,则无法开启/关闭room2或room3的灯光。

当你在Worksheets("Interview")&只有你可以选择范围。

答案 1 :(得分:0)

Application.GoTo Sheets("Interview").Range("b17")

应该工作

答案 2 :(得分:0)

我在excel 2010上对它进行了测试,所有代码都有效且有效。 无论您使用的是哪种版本的Excel,都不应该首先选择任何内容。 我建议在工作表(" Interview")前加上这本工作书的前缀,例如thisworkbook.worksheets(" Interview")

通过这种方式,您可以确定是否打开了多个工作簿,并尝试在正确的工作簿中选择正确的工作表。