1

これが以前に尋ねられたことではないことを願っています。そして、何かが間違っているだけでなく、何かが欠けているだけではないことを本当に願っています...

ワークブックの入力範囲をクリアするために、Excel 2007 でマクロを作成しています。CommandButton を使用して開始していますが、手順はモジュール内にあります。次のような構文を使用します。

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

うまく動作します。ただし、最初にシートを選択せず​​に同じシートで範囲を選択またはアクティブにしようとすると、次のようになります。

エラー 1004 (Range クラスの Select メソッドが失敗しました)

以下は範囲を選択するために機能しません

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 つの部屋 ( room1 、 room2 、 room3 ) がある家を考えてみましょう。各部屋にはファンとライト用のスイッチボードがあります。

部屋 1 の照明をオン/オフするには、部屋 1 のボタンを押します (ボタンを押すには、部屋 1 にいる必要があります)。
ルーム 2 のライトをオン/オフするには、ルーム 2 のボタンを押します (ボタンを押すには、ルーム 2 にいる必要があります)。
ルーム 3 のライトをオン/オフするには、ルーム 3 のボタンを押します (ボタンを押すには、ルーム 3 にいる必要があります)。

ルーム 1 にいる場合、ルーム 2 またはルーム 3 のライトをオン/オフすることはできません。

ここでも同じですWorksheets("Interview")。アクティブなシートにいるときは、範囲を選択できるのはあなただけです。

于 2013-06-08T01:32:55.253 に答える
0

Excel 2010 でテストしたところ、コードはすべて有効で動作します。使用している Excel のバージョンに関係なく、最初に何も選択する必要はありません。ワークシート ("インタビュー") の前に thisworkbook を付けることをお勧めします。例: thisworkbook.worksheets("Interview")

このようにして、複数のワークブックを開いている場合に、正しいワークブックで正しいシートを選択しようとしていることが確実になります。

于 2016-06-28T20:45:30.113 に答える
0
Application.GoTo Sheets("Interview").Range("b17")

動作するはずです

于 2013-06-07T21:14:45.197 に答える