返回列表 上一主題 發帖

[發問] 請教如何讓VBA自動比對相同數值後,複製到它處?

回復 3# jonn0510

資料龐大可以考慮 SQL 的做法  
記得
1. 設定引用項目 Microsoft ActiveX Data Objects 2.8 Library
2. Sheet1的B2:H2 空白的補上欄位名稱...
  1. Sub test()

  2. '建立ADODB Connection物件變數
  3. Dim cn As ADODB.Connection
  4. Set cn = New ADODB.Connection

  5. '建立ADODB Recordset物件變數
  6. Dim rs As ADODB.Recordset
  7. Set rs = New ADODB.Recordset
  8.          
  9. '建立資料庫連線
  10. With cn
  11.      .Provider = "MSDASQL"
  12.      .ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
  13.       "DBQ=" & ThisWorkbook.FullName & ";"
  14.      .Open
  15. End With

  16. 'SQL字串
  17. mySQL = "Select * FROM [Sheet1$B2:H25] WHERE [主]=[副]"
  18.      
  19. '解決無法釋放記憶體的BUG
  20. ThisWorkbook.ChangeFileAccess xlReadOnly
  21. Set rs = cn.Execute(mySQL)
  22. ThisWorkbook.ChangeFileAccess xlReadWrite
  23.          
  24. '將結果COPY到指定位置
  25. Sheets("Sheet1").Range("M12").CopyFromRecordset rs

  26. End Sub
複製代碼
diabo

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題