2016-07-05 8 views
0

私の目的は、選択したシートのみでVBAコードを実行することです。SELECTEDシートをループする(アクティブウィンドウを選択したシートを選択)

私は次のことを試みた:

1 Sub selectedsheet() 
2  Dim sh As Worksheet 
3  Dim selectedshs As Worksheets 
4   
5  Set selectedshs = ActiveWindow.SelectedSheets 
6   
7  For Each sh In selectedshs 
8   MsgBox sh.Name 
9  Next sh 
10 End Sub 

しかし線5、ランタイムエラー13 - 型の不一致が発生します。

ご協力いただければ幸いです。ありがとう!

+2

代わりシートコレクションに 'Selectedshs'を変更してみてください(ワークシートとシートオブジェクト間sublteの違いが存在する) – RGA

+0

これは働いていました。メルシ! – Sevii

答えて

0

選択したシートの数(アクティブウィンドウの選択シート数)を使用して、整数(つまりアクティブウィンドウの選択シート(1).name)を循環させるだけでいいですか?

+0

コードの他の部分が含まれていないと謝ります。私は選択したシートを巡回する直前に新しいシートを追加し、それによって新しいシートを唯一の選択されたシートにするため、これを行うことができませんでした。とにかくありがとう! – Sevii

0

selectedshsを汎用オブジェクトとして宣言する必要があります。

Sub selectedsheet() 
    Dim sh As Worksheet 
    Dim selectedshs As Object 

    Set selectedshs = ActiveWindow.SelectedSheets 

    For Each sh In selectedshs 
     MsgBox sh.Name 
    Next sh 
End Sub 

又は

Sub selectedsheet() 
    Dim sh As WorkSheet 

    For Each sh In ActiveWindow.SelectedSheets 
     MsgBox sh.Name 
    Next sh 

End Sub 
+0

汎用オブジェクトも機能しました。ありがとう! – Sevii

関連する問題