Excelにて、現在シートをArrayにて指定しているのですが、シート名が変わるたびに書き換えているのを全シート対象(指定)とする事で、書き換えることをしなくても使えるようにしたいのですが、
うまくいかずに困っています。どなたかご教授願います。
※シート名は違いますが、各シートの書式は同じです。
myAry = Worksheets.Selectを試してみたのですが、エラー(添付画像参照)となります。
現在のコード
Dim myPath As String, fN As String
Dim WB As Workbook, WS As Worksheet
Dim i As Long, k As Long
Dim c As Range, myCol As Long
Dim FoundCell As Range, FirstCell As Range
Dim myAry
myAry = Array("A", "B", "C", "D", "E", "F") '<・・・シート指定している、
myPath = ThisWorkbook.Path & "\"
fN = ComboBox2.Value
Workbooks.Open myPath & fN
Set WB = ActiveWorkbook
With ThisWorkbook.Worksheets("データーリスト")
For i = 2 To .Cells(Rows.Count, "H").End(xlUp).Row
If .Cells(i, "H") <> "" Then
For k = 0 To UBound(myAry)
Set WS = WB.Worksheets(myAry(k))
Set c = WS.Rows(1).Find(What:=ComboBox1.Value, LookIn:=xlValues, Lookat:=xlWhole)
If Not c Is Nothing Then
myCol = c.Column
Set FoundCell = WS.Range("A:A").Find(What:=.Cells(i, "H"), LookIn:=xlValues, Lookat:=xlWhole)
If Not FoundCell Is Nothing Then
Set FirstCell = FoundCell
GoTo 処理
Do
Set FoundCell = WS.Range("A:A").FindNext(After:=FoundCell)
If FoundCell.Address = FirstCell.Address Then Exit Do
処理: WS.Cells(FoundCell.Row, myCol) = .Cells(i, "I")
Loop
End If
End If
Next k
End If
Next i
End With
End Sub
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
For k = 0 To UBound(myAry)
Set WS = WB.Worksheets(myAry(k))
を
For k = 1 To WB.Worksheets.Count
Set WS = WB.Worksheets(k)
に変えてください。
No.1
- 回答日時:
コードの中身を見てませんが、
全シートを対象とするということで、参考になるでしょうか?
Sub sample1() '全シート選択するだけ
Sheets.Select
End Sub
Sub sample2() '順番に選択
For i = 1 To Sheets.Count
Sheets(i).Select
MsgBox i & "番目選択中!"
Next
End Sub
Sheets(5) だと、5番目のシートを対象にできるんです。
なので、 Sheets.Count で全シート数を取得して、
For で順に選択させてます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでブック内の倍率がバ...
-
EXCELで複数のシートを一度に「...
-
特定のシートのみ再計算させな...
-
エクセルで複数のシートに画像...
-
エクセル シート同士の引き算
-
SUMIF関数【複数のシート...
-
エクセルのシー名を二段表示に...
-
EXCELの「シートの見出し」のフ...
-
エクセル シートのグループ化...
-
アクセスからエクセルのシート...
-
エクセルの2つのシートを並び...
-
エクセルでシート数が分からな...
-
複数シートの選択解除の方法
-
Excelでの複数シートにまたがる...
-
ワークシートそのものの色を変...
-
DATE関数 4月31日などのあ...
-
エクセルでリンク貼り付けした...
-
エクセルのシートが消えた
-
Accessのテーブルを既存のExcel...
-
エクセル、別のシートの表をポ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
エクセルでブック内の倍率がバ...
-
ワークシートそのものの色を変...
-
【ExcelVBA】マクロの入ったシ...
-
エクセルの2つのシートを並び...
-
EXCELの図形(テキストボックス)...
-
ハイパーリンクでジャンプした...
-
エクセルのシート連番の振り直し
-
特定の複数のシートに同じ処理...
-
エクセルのシー名を二段表示に...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
エクセルでリンク貼り付けした...
-
エクセル、特定のシートにパス...
-
accessへエクセルの複数のシー...
-
Accessのテーブルを既存のExcel...
-
【Excel VBA】データ貼り付け先...
-
EXCELの「シートの見出し」のフ...
おすすめ情報