vbaの配列に関する質問です。
シートにある2500行10列程度のデータを配列に入れて、条件で抽出をかけて書き出しをしています。ところが抽出2回目以降、表示されるデータが重複してしまいます。
例えば「卒業」という語句が含まれている行をすべて抽出したいと思った時に、1回目が3件抽出されると、2回目は同じものが下に表示され合計6件、3回目は9件という感じです。
配列の中でヒットしたら、同じ配列の先頭に差し替える、という流れの記述をしています。
vba
1Sub 抽出() 2 Dim i As Long, n As Long, m As Long 3 Dim buf As Variant 4 Dim x As String, y As String, z As String 5 Dim cnt As Long: cnt = 1 6 Dim num As Long 7 8 x = Range("j2") 9 10 Range("a2:h100").ClearContents 11 12 Set buf = Sheets("data").Range("a2:h3000") 13 14 If x <> "" Then 15 For i = 1 To 3000 16 If buf(i, 2) Like "*" & x & "*" Then 17 For n = 1 To 8 18 buf(cnt, n) = buf(i, n) 19 Next n 20 cnt = cnt + 1 21 End If 22 Next i 23 End If 24 25 For m = 1 To cnt - 1 26 For n = 1 To 8 27 Cells(m + 1, n) = buf(m, n) 28 Next n 29 Next m 30 31End Sub
原因と解決策をご教示いただけないでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/23 10:08