この転記するコードはデータ量によってはきついですか? | |
---|---|
[195991] この転記するコードはデータ量によってはきついですか?- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ やまいも -(2023/10/20(02:02)) □U R L/ SHEET1に、 ID 取引名 001 AAA 001 BBB 001 CCC 002 DDD 002 EEE とあるときに、 SHEET2のC1(ID検索欄)に、IDを入力すると SHEET2のA1から順に ID 取引名 001 AAA 001 BBB 001 CCC と転記をしたくて、 Sub CopyData() Dim id As String Dim lastRow As Long Dim i As Long Dim j As Long id = Sheets("Sheet2").Range("C1").Value lastRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row j = 1 For i = 1 To lastRow If Sheets("Sheet1").Cells(i, "A").Value = id Then Sheets("Sheet2").Cells(j, "A").Value = Sheets("Sheet1").Cells(i, "A").Value Sheets("Sheet2").Cells(j, "B").Value = Sheets("Sheet1").Cells(i, "B").Value j = j + 1 End If Next i End Sub としました。 SHEET1のデータ件数が増えたり、一度に100件など転記させると、 PCに依存するとは思いますがかなり重めの動作になりますか? 改善方法はあるでしょうか? この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195996] Re[1]: この転記するコードはデータ量によってはきついですか?- ■記事引用/メール受信=OFF■ □投稿者/ ヘンリー -(2023/10/20(11:45)) □U R L/ IDが順番に並んでいるなら、 検索IDが変わったらFor文を抜けるとか、 Filterかけるとか、、、 ですかね。 |
[195997] Re[2]: この転記するコードはデータ量によってはきついですか?- ■記事引用/メール受信=OFF■ □投稿者/ kazuo -(2023/10/20(22:37)) □U R L/ 失礼します。 >SHEET2のC1(ID検索欄)に、IDを入力すると ↓ SHEET2のC1は"ID"としてC2(ID検索欄)に、IDを入力すると にすれば、 フィルターオプションにより一瞬で抽出出来ると思います。 Sub CopyData() Sheets("Sheet2").Range("A:B").ClearContents Sheets("Sheet2").Range("C2").Value = "'=" & Sheets("Sheet2").Range("C2").Value Sheets("Sheet1").Range("A:B").AdvancedFilter xlFilterCopy, Sheets("Sheet2").Range("C1:C2"), Sheets("Sheet2").Range("A1") End Sub win10(64) excel2016 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
このトピックに書きこむ |
---|