Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11全般 : Excel 2021)
「実行時エラー’13’ 型が一致しません」のエラーになります
投稿日時: 25/02/19 18:31:45
投稿者: 雷きらい

いつもお世話になっております。 またまた教えてください。
 
特定の行(myStartRow=16からmyLastRow=18まで)を削除したいと思っています。
マクロ「test1」では正常に動作しますが、「test2」では「型が一致しません」のエラーになります。
コンパイルエラーはありません。
 
どうすればいいのか、ご教授願います。
 
Sub Test1() ← 正常動作
    Rows("16:18").Select
    Selection.Delete shift:=xlUp
End Sub
 
Sub test2()
    Dim myStartRow As Long
    Dim myLastRow As Long
     
    myStartRow = 16
    myLastRow = Cells(Rows.Count, 6).End(xlUp).Row
     
    Rows("myStartRow : myLastRow").Select   ← 実行時エラーになる
    Selection.Delete shift:=xlUp
End Sub

回答
投稿日時: 25/02/19 23:47:35
投稿者: simple

>Rows("myStartRow : myLastRow").Select
ダブルクオーテーションのなかに変数を入れても、それは単なる文字列ですので、
変数としての機能は果たしません。

Rows(myStartRow & ":" & myLastRow).Select
を試して見て下さい。
 
なお、普通はSelectせずに
Rows(myStartRow & ":" & myLastRow).Delete shift:=xlUp
と書くことが多いと思います。

投稿日時: 25/02/20 12:27:18
投稿者: 雷きらい

simple 様
 
早速のご指導ありがとうございました。
おかげ様でうまくいきました。
なお、「select」せずに、直接行削除ができることも勉強になりました。
 
今後とも、よろしくご指導願います。