このトピックに書きこむ |
---|
Re[1]: 抽出する処理速度を早くしたい | |
---|---|
[195572] Re[1]: 抽出する処理速度を早くしたい- ■ / 記事引用/メール受信=OFF■ □投稿者/ koba -(2023/01/29(09:59)) □U R L/ 別の方法で解決しました。 '1次元配列に行方向のデータを格納 With Worksheets("商品A明細") myArea = Range(.Cells(1, 4), .Cells(1, maxColumn)) End With '格納した要素数を取得 myAreaMaxCol = UBound(myArea, 2) - LBound(myArea, 2) + 1 '集計表に転記 Range("D5").Resize(1, myAreaMaxCol).Value = myArea <(_ _)> この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195566] 抽出する処理速度を早くしたい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ koba -(2023/01/28(18:07)) □U R L/ 現在、Worksheets("商品A明細") から検索で得た行のデータをWorksheets("集計表")に行ごと転記する方法として下記のコードを使っていますが、10個ほどの商品明細(商品A〜商品J) を同じコードで繰り返しているためか処理時間がだいぶ遅くなっています。 VALUEプロパティを使えば、もう少し早くなるのではないかと思うのですが、エラーになってしまいます。 VALUEプロパティを使うにはどのようにしたらよいのでしょうか。どなたかご教授願います。 'myRange = Worksheets("商品A明細").Range("B1").CurrentRegion 'myRow = myRange.Find(検索値, lookAt:=xlWhole).Row 'maxColumn = Worksheets("商品A明細").Cells(1, Columns.Count).End(xlToLeft).Column '現在のコード With Worksheets("商品A明細") .Range(.Cells(myRow, 4), .Cells(myRow, maxColumn)).Copy _ Destination:=Worksheets("集計表").Range("D6") End With 'エラーになるコード Worksheets("集計表").Range(Cells(6, 4), Cells(6, maxColumn)).Value = Worksheets("商品A明細").Range(Cells(myRow, 4), Cells(myRow, maxColumn)).Value よろしくお願いいたします。 Windows11 Excel2021 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 ++++++++++++++++++++ OS ⇒OTHER Version⇒OTHER ++++++++++++++++++++ |