Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11104 / 76735 ←次へ | 前へ→

【71172】Re:異なるデータを抽出させる
発言  Hirofumi  - 12/2/3(金) 12:42 -

引用なし
パスワード
   後、ついでですが?

もし、Book1のA列とBook2のA列が共に昇順整列されているなら
もう少し速くする事が出来ます

尚、A列の値が半角英数以外の文字が入るなら
モジュール先頭に以下のコードを記述して下さい
(Excelの整列順とVBAの整列順が違う為)

Option Explicit
Option Compare Text 'これ


Sub Test_2()
 
'  Dim i As Integer, k As Integer
  Dim i As Long, k As Long
  Dim LstR1 As Long, LstR2 As Long, Bk1 As Workbook, Bk2 As Workbook
  Dim lngAppend As Long, lngStart As Long
 
  Set Bk1 = ThisWorkbook
  Set Bk2 = Workbooks.Open(ThisWorkbook.Path & "\Book2.xlsx")
  
  With Bk1.Worksheets("sheet1")
    LstR1 = .Cells(Rows.Count, 1).End(xlUp).Row
    lngAppend = LstR1 + 1
    LstR2 = Bk2.Sheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    lngStart = 1
    For i = 1 To LstR2
      For k = lngStart To LstR1
        If .Cells(k, 1).Value = Bk2.Sheets("sheet1").Cells(i, 1).Value Then
          Exit For
        End If
      Next k
      If k > LstR1 Then
        Bk2.Sheets("sheet1").Cells(i, 1).Copy .Cells(lngAppend, 1)
        lngAppend = lngAppend + 1
      Else
        lngStart = k + 1
      End If
    Next i
  End With
  
  Bk2.Close True
  Bk1.Save

End Sub
9 hits

【71162】異なるデータを抽出させる PePe 12/2/3(金) 10:36 質問
【71164】Re:異なるデータを抽出させる kanabun 12/2/3(金) 11:03 回答
【71167】Re:異なるデータを抽出させる PePe 12/2/3(金) 11:29 質問
【71168】Re:異なるデータを抽出させる Hirofumi 12/2/3(金) 11:31 発言
【71170】Re:異なるデータを抽出させる Hirofumi 12/2/3(金) 11:57 発言
【71172】Re:異なるデータを抽出させる Hirofumi 12/2/3(金) 12:42 発言
【71171】Re:異なるデータを抽出させる kanabun 12/2/3(金) 11:59 発言
【71166】Re:異なるデータを抽出させる kanabun 12/2/3(金) 11:21 発言
【71169】Re:異なるデータを抽出させる kanabun 12/2/3(金) 11:32 発言
【71173】Re:異なるデータを抽出させる PePe 12/2/3(金) 15:47 お礼
【71175】Re:異なるデータを抽出させる kanabun 12/2/3(金) 17:04 発言
【71176】Re:異なるデータを抽出させる kanabun 12/2/3(金) 18:29 発言
【71177】Re:異なるデータを抽出させる kanabun 12/2/3(金) 19:08 発言

11104 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free