前提・実現したいこと
現在、VBAにてexcel業務を効率化出来る様に、勉強をし始めました。
恥ずかしながら、制御構文を使いこなせてない為、アドバイスを頂きたいと考えています。よろしくお願いします。![![f341c36f32e969a535337b14c85d87cd.jpeg)
sheet2のセルC2値に対して、sheet1のB4〜B列最終行まで検索を行い、以下条件を処理を行う。
・完全合致した場合は、sheet1のB4〜B列の該当セルへ上書きを実施。
・合致しない場合は、sheet1のB4〜B列の最終入力済セルの次行(空白)へ転記。
発生している問題・エラーメッセージ
該当のソースコード
VBA
1Sub 検索転記() 2Dim number As Range '入力値 3Dim result As Range '検索結果 4Dim lastline As Long '最終行 5Dim ws1 As Worksheet 6Dim ws2 As Worksheet 7 8Set ws1 = Worksheets("sheet1") 9Set ws2 = Worksheets("sheet2") 10Set number = ws2.Range("C2") 11 12lastline = ws1.Cells(Rows.Count, "B").End(xlUp).Row 13 14For i = 4 To lastline 15Set result = ws1.Range("B" & i).Find(number, lookat:=xlWhole) 16 17If result Is Nothing Then 'Rangeが「Nothing」である場合 18 n = Cells(Rows.Count, "B").End(xlUp).Row + 1 19 ws1.Range("B" & n).Value = number.Value 20 21ElseIf Not result Is Nothing Then 22 ws1.Range("B" & i).Value = number.Value 23 24End If 25 26Next i 27 28End Sub 29
試したこと
if、for文にて作成したのですが、合致しない場合への情報分岐と合致した場合の上書きがどのようなロジックを立てて作成したらよいか分からない為、アドバイスをいただきたいです。
回答1件
あなたの回答
tips
プレビュー