Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2354 / 13646 ツリー ←次へ | 前へ→

【68540】データの集計で、対象外のシートを除く方法について Yoshi 11/3/20(日) 8:38 質問[未読]
【68541】Re:データの集計で、対象外のシートを除く... ichinose 11/3/20(日) 9:24 発言[未読]
【68542】Re:データの集計で、対象外のシートを除く... Yoshi 11/3/20(日) 10:59 質問[未読]
【68543】Re:データの集計で、対象外のシートを除く... ichinose 11/3/20(日) 17:33 発言[未読]
【68544】Re:データの集計で、対象外のシートを除く... Yoshi 11/3/20(日) 21:11 お礼[未読]

【68540】データの集計で、対象外のシートを除く方...
質問  Yoshi  - 11/3/20(日) 8:38 -

引用なし
パスワード
   シート4から残り全てのデータの集計をしたいのですが、現在Sheets("sheet2")で集計させているのですが、
Sheets("sheet1")のデータが反映されて困っています。
sheets("sheet1")とSheets("sheet3")を除外させる方法を教えてください。

Sub データの集計()
Dim i As Long, k As Long, LstRow As Long
Dim Dsum As Long, ws As Worksheet

For i = 4 To Sheets.Count
If Sheets(i) = Sheets("sheet1") Then Exit Sub'←ここでエラーが出ます
 With Sheets(i)
  LstRow = .Range("D" & Rows.Count).End(xlUp).Row
  For k = 2 To LstRow
   Dsum = Dsum + .Range("D" & k)
  Next k
 End With
  Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1) = Sheets(i).Name
  Sheets("sheet2").Range("B" & Rows.Count).End(xlUp).Offset(1) = Dsum
Next i
End Sub

【68541】Re:データの集計で、対象外のシートを除...
発言  ichinose  - 11/3/20(日) 9:24 -

引用なし
パスワード
   ▼Yoshi さん:
おはようございます。


>Sub データの集計()
>Dim i As Long, k As Long, LstRow As Long
>Dim Dsum As Long, ws As Worksheet
>
>For i = 4 To Sheets.Count
  If Sheets(i) is Sheets("sheet1") Then Exit for
'又は、
  If Sheets(i).name=Sheets("sheet1").name Then Exit for
> With Sheets(i)
>  LstRow = .Range("D" & Rows.Count).End(xlUp).Row
>  For k = 2 To LstRow
>   Dsum = Dsum + .Range("D" & k)
>  Next k
> End With
>  Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1) = Sheets(i).Name
>  Sheets("sheet2").Range("B" & Rows.Count).End(xlUp).Offset(1) = Dsum
>Next i
>End Sub

【68542】Re:データの集計で、対象外のシートを除...
質問  Yoshi  - 11/3/20(日) 10:59 -

引用なし
パスワード
   ▼ichinose さん:

早速ありがとうございます。正しく動作しました。

If Sheets(i) is Sheets("sheet1") Then Exit for
を使わせていただきました。

後、一点お聞きしたいのですが
シート3も避けたいため
If Sheets(i) is Sheets("sheet1") Then Exit for
If Sheets(i) is Sheets("sheet3") Then Exit for
とさせて
動作させました。問題なく動作していますが、
これで良いでしょうか?
ありがとうございます。

【68543】Re:データの集計で、対象外のシートを除...
発言  ichinose  - 11/3/20(日) 17:33 -

引用なし
パスワード
   >If Sheets(i) is Sheets("sheet1") Then Exit for
>を使わせていただきました。

>後、一点お聞きしたいのですが
>シート3も避けたいため
>If Sheets(i) is Sheets("sheet1") Then Exit for
>If Sheets(i) is Sheets("sheet1")
>とさせて
>動作させました。問題なく動作していますが、

上記でよいです。


if (Sheets(i) is Sheets("sheet1")) or (Sheets(i) is Sheets("sheet1")) then exit for

こんな書き方もあるとは思いますけどね!!

【68544】Re:データの集計で、対象外のシートを除...
お礼  Yoshi  - 11/3/20(日) 21:11 -

引用なし
パスワード
   ▼ichinose さん:

ご丁寧にご指導誠にありがとうございました。
よく理解できました。

今後ともよろしくご指導のほどお願いいたします。

2354 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free