Excel VBA質問箱 IV

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

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


313 / 76735 ←次へ | 前へ→

【82089】Re:2つのシートのデータをまとめる作業
発言  マナ  - 22/11/8(火) 18:55 -

引用なし
パスワード
   ▼ace さん:
>
Option Explicit

Sub test()
  Dim dic As Object
  Dim 見出Sht As Worksheet, 詳細Sht As Worksheet
  Dim r As Range, w() As String, v
  Dim k As Long
  Dim No As String, idx As Long, s1 As String, s2 As String
  
  Set dic = CreateObject("scripting.dictionary")
  Set 見出Sht = Worksheets("見出")
  Set 詳細Sht = Worksheets("詳細")
  
  Set r = 見出Sht.Columns("E").SpecialCells(xlCellTypeConstants).Resize(, 2)
  ReDim w(1 To r.Rows.Count, 1 To 2)
  v = r.Value
  For k = 1 To UBound(v)
    No = v(k, 1) & "_" & v(k, 2)  '年度_No,
    idx = k
    If Not dic.exists(No) Then dic(No) = idx
  Next
  
  Set r = 詳細Sht.Columns("E").SpecialCells(xlCellTypeConstants).Resize(, 10)
  v = r.Value
  v = WorksheetFunction.Sort(v, 3, 1, False) 'G列(SEQ)でソート
  
  For k = 1 To UBound(v)
    No = v(k, 1) & "_" & v(k, 2)  '年度_No,
    If dic.exists(No) Then
      idx = dic(No)
      s1 = v(k, 9)  '項目
      s2 = v(k, 10)  '結果
      s2 = s1 & "(" & s2 & ")"
      w(idx, 1) = IIf(w(idx, 1) = "", s1, w(idx, 1) & "," & s1)
      w(idx, 2) = IIf(w(idx, 2) = "", s2, w(idx, 2) & "," & s2)
    End If
  Next

  Set r = 見出Sht.Columns("AA:AB")
  r.ClearContents
  r.Resize(UBound(w)).Value = w
  r.AutoFit
  
End Sub
8 hits

【82088】2つのシートのデータをまとめる作業 ace 22/11/7(月) 13:40 質問[未読]
【82089】Re:2つのシートのデータをまとめる作業 マナ 22/11/8(火) 18:55 発言[未読]
【82091】Re:2つのシートのデータをまとめる作業 ace 22/11/9(水) 14:03 質問[未読]
【82092】Re:2つのシートのデータをまとめる作業 マナ 22/11/9(水) 18:56 発言[未読]
【82093】Re:2つのシートのデータをまとめる作業 ace 22/11/11(金) 16:55 質問[未読]
【82094】Re:2つのシートのデータをまとめる作業 マナ 22/11/11(金) 19:23 発言[未読]
【82096】Re:2つのシートのデータをまとめる作業 ace 22/11/14(月) 10:46 質問[未読]
【82098】Re:2つのシートのデータをまとめる作業 マナ 22/11/16(水) 20:39 発言[未読]
【82100】Re:2つのシートのデータをまとめる作業 ace 22/11/18(金) 14:22 お礼[未読]

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