戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
この転記するコードはデータ量によってはきついですか?

    [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のコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G