Excel VBA質問箱 IV

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

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


43311 / 76732 ←次へ | 前へ→

【38471】Re:オートフィルタで絞り込んだデータで...
回答  Kein  - 06/6/3(土) 16:54 -

引用なし
パスワード
   それでうまくいかない理由がわかりました。一番最後のデータの月を指定したとき、
空白セル範囲(MyR)の設定が、一つ不足してしまうことが原因でした。
それで以下のように修正したところ、うまくいきました。

Sub My集計()
  Dim Mth As Long, LstR As Long, Clc As Long
  Dim MyR As Range, C As Range
  Dim MyV As Variant
  Const Pmt As String = _
  "集計する月を1〜12の整数で入力して下さい"
 
  With Application
   Do
     Mth = .InputBox(Pmt, Type:=1)
     If Mth = False Then Exit Sub
   Loop While Mth < 1 Or Mth > 12
   .ScreenUpdating = False
  End With
  LstR = Range("A65536").End(xlUp).Row - 1
  With Range("IV1").End(xlToLeft).Offset(, 1)
   .Value = "月"
   With .Offset(1).Resize(LstR)
     .Formula = "=MONTH($A2)"
     .Value = .Value
   End With
   If IsError(Application.Match(Mth, .EntireColumn, 0)) Then
     MsgBox "指定した月のデータはありません", 48
     .EntireColumn.ClearContents: GoTo ELine
   End If
  End With
  With Sheets("Sheet2")
   .Range("A:A").ClearContents
   .Range("A1").Value = Mth & "月の集計"
  End With
  With Range("A1").CurrentRegion
   Clc = .Columns.Count
   .Sort Key1:=Range("IV1").End(xlToLeft), _
   Order1:=xlAscending, Key2:=Range("D1"), _
   Order2:=xlAscending, Header:=xlYes, _
   Orientation:=xlSortColumns
   .Subtotal 4, xlCount, Array(4)
  End With
  With Cells(65536, Clc).End(xlUp)
   If .Value = Mth Then
     Set MyR = Range(Cells(2, Clc), .Cells.Offset(1)) _
     .SpecialCells(4)
   Else
     Set MyR = Range(Cells(2, Clc), .Cells).SpecialCells(4)
   End If
  End With
  For Each C In MyR
   If C.Offset(-1).Value = Mth Then
     MyV = Array(Cells(C.Row - 1, 4).Value, _
     Cells(C.Row, 4).Value & " 件")
     Sheets("Sheet2").Range("A65536").End(xlUp).Offset(1) _
     .Resize(, 2).Value = MyV
   ElseIf C.Offset(-1).Value > Mth Then
     Exit For
   End If
  Next
  Set MyR = Nothing: Columns(Clc).ClearContents
  With Range("A1").CurrentRegion
   .RemoveSubtotal
   .Sort Key1:=Range("A1"), Order1:=xlAscending, _
   Header:=xlYes, Orientation:=xlSortColumns
  End With
  Sheets("Sheet2").Activate
ELine:
  Application.ScreenUpdating = True
End Sub

2 hits

【38421】オートフィルタで絞り込んだデータで、特... EBI 06/6/2(金) 11:25 質問
【38422】Re:オートフィルタで絞り込んだデータで、... Jaka 06/6/2(金) 12:44 発言
【38431】Re:オートフィルタで絞り込んだデータで、... Kein 06/6/2(金) 17:11 回答
【38460】Re:オートフィルタで絞り込んだデータで... kobasan 06/6/3(土) 13:48 発言
【38462】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 14:38 発言
【38463】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 14:44 発言
【38465】Re:オートフィルタで絞り込んだデータで... kobasan 06/6/3(土) 15:49 回答
【38468】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 16:15 発言
【38470】Re:オートフィルタで絞り込んだデータで... kobasan 06/6/3(土) 16:41 回答
【38471】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 16:54 回答
【38472】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 17:34 発言
【38475】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 19:01 回答
【38476】Re:オートフィルタで絞り込んだデータで... EBI 06/6/3(土) 21:06 発言
【38479】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 22:39 回答
【38480】Re:オートフィルタで絞り込んだデータで... Kein 06/6/3(土) 22:50 発言
【38484】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 8:58 発言
【38485】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 13:16 発言
【38486】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 14:54 発言
【38487】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 15:34 回答
【38488】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 16:02 発言
【38490】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 17:25 回答
【38491】Re:オートフィルタで絞り込んだデータで... EBI 06/6/4(日) 19:36 発言
【38492】Re:オートフィルタで絞り込んだデータで... Kein 06/6/4(日) 21:50 発言
【38496】Re:オートフィルタで絞り込んだデータで... EBI 06/6/5(月) 10:36 発言
【38510】Re:オートフィルタで絞り込んだデータで... EBI 06/6/5(月) 14:56 発言
【38513】Re:オートフィルタで絞り込んだデータで... Kein 06/6/5(月) 16:03 回答
【38517】Re:オートフィルタで絞り込んだデータで... EBI 06/6/5(月) 17:05 お礼

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