A. VBA篩選數據後復制到另一張表
可以在收貨管理表打開時就更新數據,無須增加控制項。
代碼清單:
Private Sub Worksheet_Activate()
Rows.ClearContents
Dim r, c, s As Integer
s = 0
For c = 1 To 8
Sheets("收貨管理表").Cells(1, c).Value = Sheets("訂單表").Cells(1, c).Value '插入表頭
Next c
For r = 2 To 9
If Sheets("訂單表").Cells(r, 8) = "是" Then
s = s + 1
Sheets("收貨管理表").Cells(s + 1, 1).Value = s '自動順序編號
For c = 2 To 8
Sheets("收貨管理表").Cells(s + 1, c).Value = Sheets("訂單表").Cells(r, c).Value '插入產品其他信息
Next c
End If
Next r
End Sub
該程序已通過測試。
B. 如何能過VBA將篩選後的內容復制到另一張表的指定位置
If Target.Column = 16 Then
Range("q2:x50").ClearContents
Sheets("2").Range("A1:AE42").AutoFilter Field:=5, Criteria1:=Range("p1")
Sheets("2").cells.SpecialCells(xlCellTypeVisible).Copy Range("A1")
這么多 應該就可以了
C. EXCEL的VBA實現將篩選後的記錄復制到新文件中
通常情況下,用VBA就不會用篩選來做了。
建議:第一步:將原始數據讀取後存入一個數組;
第二步:對數組逐條訪問,根據篩選設定的條件,如果滿足條件則將這條記錄的內容寫入目標位置
第三步:也就是循環第二步,一直到結束就完成了。
D. VBA 按條件篩選資料庫記錄導出Excel(如何加快寫入速度)
你這樣循環查詢是不科學了,上萬記錄會慢死,應該一次性讀出所有數據,然後去填寫:
'建立已經字典,把資料庫內容存入字典
setdaList=CreateObject("Scripting.Dictionary")
rs.Open"selectDA,B1,S1,M1,St1,R1from`A`",conn
DoWhileNotrs.EOF()
daList.Addrs(1),Array(rs(2),rs(3),rs(4),rs(5),rs(6))
rs.MoveNext
Loop
'填寫EXCEL表
fori=2toCells(rows.count,"D").End(xlUp).Row
da=Cells(i,"D")
ifdaList.Exists(da)then
Cells(i,"E").resize(5,1)=daList(da)
else
Cells(i,"E").resize(5,1)=Empty
endif
nexti