Excel VBA質問箱 IV

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

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


7988 / 76736 ←次へ | 前へ→

【74329】Re:文字の比較
発言  UO3  - 13/5/23(木) 11:34 -

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

とりあえず↑の理解でコード案を2つほど。
なお、aシートもbシートも1行目がタイトル行、データは2行目からという想定です。

Sub Sample1()
'ループでシート関数MATCHを使う基本形。処理効率は若干落ちる。
  Dim nameV As Variant
  Dim amtV As Variant
  Dim newV As Variant
  Dim i As Long
  Dim z As Variant
  
  With Sheets("a")
    'aシートの名前列と金額列を配列に格納(2行目以降)
    With .Range("E2", .Range("E" & .Rows.Count).End(xlUp))
      nameV = .Cells.Value
      amtV = .Offset(, 7).Value
    End With
  End With
  
  With Sheets("b")
    'bシートの N列、O列の内容(2行目以降)を配列に格納
    newV = .Range("N2", .Range("N" & .Rows.Count).End(xlUp)).Resize(, 2).Value
    For i = 1 To UBound(newV, 1)
      z = Application.Match(newV(i, 1), nameV, 0)
      If IsNumeric(z) Then newV(i, 2) = amtV(z, 1)
    Next
    .Range("N2").Resize(UBound(newV, 1), UBound(newV, 2)).Value = newV
    .Select
  End With
  
End Sub

Sub Sample2()
'Dictionary処理案。
  Dim c As Range
  Dim newV As Variant
  Dim i As Long
  Dim dic As Object
  
  Set dic = CreateObject("Scripting.Dictionary")
  
  With Sheets("a")
    'aシートの名前と金額をDictionaryに格納(2行目以降)
    For Each c In .Range("E2", .Range("E" & .Rows.Count).End(xlUp))
      dic(c.Value) = c.EntireRow.Range("L1").Value
    Next
  End With
  
  With Sheets("b")
    'bシートの N列、O列の内容(2行目以降)を配列に格納
    newV = .Range("N2", .Range("N" & .Rows.Count).End(xlUp)).Resize(, 2).Value
    For i = 1 To UBound(newV, 1)
      If dic.exists(newV(i, 1)) Then newV(i, 2) = dic(newV(i, 1))
    Next
    .Range("N2").Resize(UBound(newV, 1), UBound(newV, 2)).Value = newV
    .Select
  End With
  
End Sub

0 hits

【74321】文字の比較 愛子 13/5/22(水) 17:13 発言
【74328】Re:文字の比較 UO3 13/5/23(木) 11:13 発言
【74330】Re:文字の比較 愛子 13/5/23(木) 12:34 発言
【74331】Re:文字の比較 愛子 13/5/23(木) 12:43 発言
【74332】Re:文字の比較 UO3 13/5/23(木) 14:22 発言
【74333】Re:文字の比較 愛子 13/5/23(木) 17:09 発言
【74334】Re:文字の比較 愛子 13/5/23(木) 18:21 発言
【74335】Re:文字の比較 UO3 13/5/23(木) 19:58 発言
【74337】Re:文字の比較 愛子 13/5/23(木) 21:21 質問
【74340】Re:文字の比較 UO3 13/5/24(金) 10:17 発言
【74344】Re:文字の比較 愛子 13/5/24(金) 12:55 発言
【74347】Re:文字の比較 UO3 13/5/24(金) 13:16 発言
【74350】Re:文字の比較 愛子 13/5/24(金) 15:20 発言
【74352】Re:文字の比較 愛子 13/5/24(金) 18:24 質問
【74353】Re:文字の比較 UO3 13/5/24(金) 19:37 発言
【74354】Re:文字の比較 愛子 13/5/24(金) 20:27 お礼
【74341】Re:文字の比較 UO3 13/5/24(金) 10:42 発言
【74346】Re:文字の比較 愛子 13/5/24(金) 13:14 発言
【74342】Re:文字の比較 UO3 13/5/24(金) 11:15 発言
【74345】Re:文字の比較 愛子 13/5/24(金) 12:57 発言
【74343】Re:文字の比較 UO3 13/5/24(金) 11:20 発言
【74329】Re:文字の比較 UO3 13/5/23(木) 11:34 発言

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