• 締切済み

Excelのデータから一部のデータを別シートに抽出するマクロを組みたい2

何度も質問して申し訳ありません。 しかしなぜかマクロがどうしても動いてくれません。 そこで、質問の時は例としてデータの配列をしてたものを、実際に作成しているデータの配列を画像で示しますので、どうかよろしくお願いいたします。 上の画像のシート名:Log Sheet 下の画像のシート名:Summary Sheet

みんなの回答

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

とりあえずこちらに回答します 日付を変えたら変更する場合です Summary SheetのVBEに Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer, LastRow As Integer Dim c As Object Dim firstAddress As String If Target.Address = "$F$1" Then i = 0 If Range("F5") <> "" Then Range("C5:" & Range("F65536").End(xlUp).Address).Clear End If With Worksheets("Log Sheet").Range("C10:" & Worksheets("Log Sheet").Range("c65536").End(xlUp).Address) Set c = .Find(ActiveSheet.Range("F1").Value, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do ActiveSheet.Range("C5").Offset(i, 0) = c.Offset(0, 3).Value ActiveSheet.Range("D5").Offset(i, 0) = c.Offset(0, 6).Value ActiveSheet.Range("F5").Offset(i, 0) = c.Offset(0, 10).Value i = i + 1 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With End If End Sub

blukissen
質問者

お礼

kmetu-san, 何度も、迅速かつ丁寧な回答をしていただきまして、ありがとうございました。 また、お礼が遅くなってしまいましてすみませんでした。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

With Worksheets("Log Sheet").Range("C10:" & Worksheets("Log Sheet").Range("c65536").End(xlUp).Address) にしてください。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

画像が見えにくいのですが多分 Sub test() Dim i As Integer, LastRow As Integer Dim c As Object Dim firstAddress As String i = 0 LastRow = Range("C65536").End(xlUp).Row + 1 With Worksheets("Log Sheet").Range("C10:" & Range("C65536").End(xlUp).Address) Set c = .Find(ActiveSheet.Range("F1").Value, LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do ActiveSheet.Range("C" & LastRow).Offset(i, 0) = c.Offset(0, 3).Value ActiveSheet.Range("D" & LastRow).Offset(i, 0) = c.Offset(0, 6).Value ActiveSheet.Range("F" & LastRow).Offset(i, 0) = c.Offset(0, 10).Value i = i + 1 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With End Sub

回答No.1

前の質問の続きなら、前の質問でやりましょう。 前の質問を閉めずに、一部の回答者とだけのやり取りのためだけに質問を立ち上げるのはマナー違反です。 ちなみに、何度も質問してもご自分で理解できないようなマクロを使うのは、最近厳しくなってきた内部統制の観点からして問題があるような気がします。

blukissen
質問者

補足

大変申し訳ありませんでした。 今後気をつけます。

関連するQ&A