[[20180509001948]] 『マクロ:別のシートで実行するとWorksheetエラーが』(スマトラ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ:別のシートで実行するとWorksheetエラーが出る。』(スマトラ)

すみません、いつもお世話になっております。

下記コードは、Worksheet名「TP」で複数のセル範囲のデータをクリアするものです。

コード自体は、TPシートを表示した状態では問題なく動作します。

問題は、他のシートを開いた状態で下記コードを実行すると

実行時エラー1004
Rangeメソッドは失敗しました。Worksheetオブジェクト

となります。

皆さま、アドバイスのほどよろしくおねがいします。

Sub TPデータエリアクリア()

    Dim i As Long, sh1 As Worksheet
    Set sh1 = Worksheets("TP")
    For i = 1 To 265 Step 37  
        With sh1
            Union(.Range(Cells(3, 1 + i), Cells(59, 36 + i)), .Range(Cells(61, 1 + i), Cells(119, 36 + i)), _
                  .Range(Cells(121, 1 + i), Cells(179, 36 + i)), .Range(Cells(181, 1 + i), Cells(240, 36 + i))).Value = ""
        End With
        i = i + 1
    Next i
End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


>問題は、他のシートを開いた状態
たぶんほかのシートがアクティブになってる時って言いたかったんじゃないかと思います。

そのコード標準モジュールに書いてるとおもうんですが、cellsプロパティの前に「.」つけ忘れてるので、

 Worksheets("TP").Range(ActiveSheet.Cells(3, 1 + i),ActiveSheet.Cells(59, 36 + i))〜

って解釈されて、辻褄があってないってExcel君からの指摘を受けてますね。

「Cells」それぞれを「.Cells」に修正すればよいとおもいます。

(もこな2) 2018/05/09(水) 03:11


もなこ2 さん

おはようございます。
すごい早起きですね。

「.」見落としていました!!

確かに問題なく動いています。
ありがとうございます。(^o^)解決です。
(スマトラ) 2018/05/09(水) 08:58


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.