1

我希望这不是以前被问过的问题。我真的希望有什么问题,我不只是错过了什么......

我正在 Excel 2007 中制作一个宏来清除工作簿中的输入范围。我正在使用命令按钮来启动它,并且该过程在一个模块中。使用如下语法:

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

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

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

以下不适用于选择范围

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

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

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

4

3 回答 3

1

我会给你一个例子,希望它有帮助。

考虑一栋有 3 个房间(房间 1、房间 2 和房间 3)的房子。每个房间都有用于风扇和灯光的开关板。

现在要打开/关闭房间 1 的灯,您必须按下房间 1 中的按钮(您必须在房间 1 中才能按下按钮)。
要打开/关闭房间 2 的灯,您必须按下房间 2 中的按钮(您必须在房间 2 中才能按下按钮)。
要打开/关闭房间 3 的灯,您必须按下房间 3 中的按钮(您必须在房间 3 中才能按下按钮)。

如果您在房间 1,您无法打开/关闭房间 2 或房间 3 的灯。

此处的情况也是如此,当您在Worksheets("Interview")其活动表中时,只有您可以选择范围。

于 2013-06-08T01:32:55.253 回答
0
Application.GoTo Sheets("Interview").Range("b17")

应该管用

于 2013-06-07T21:14:45.197 回答
0

我已经在 excel 2010 上对其进行了测试,您的所有代码都是有效的并且可以工作。无论您使用什么版本的 excel,您都不需要先选择任何内容。我建议在工作表(“面试”)前加上这个工作簿,例如 thisworkbook.worksheets(“面试”)

这样,您可以确定是否打开了多个工作簿,您正在尝试在正确的工作簿中选择正确的工作表。

于 2016-06-28T20:45:30.113 回答