```
子數據查詢()
Dim開始日期為日期,結束日期為日期,公司為字符串
Dim rowIdx壹樣長,lastRowIdx壹樣長,resultRowIdx壹樣長
Dim ws1作為工作表,ws2作為工作表
Dim eData作為變體,fData作為變體,gData作為變體,hData作為變體,iData作為變體
設置ws1 = thisworkbook。sheets(\“sheet 1 \“)‘查詢結果所在的工作表。
設置ws2 = thisworkbook。sheets(“sheet 2“)“數據源所在的工作表。
lastrowidx = ws2 . cells(ws2 . rows . count,1)。結束(xlup)。“Row”數據源最後壹行的序列號。
開始日期= ws1。範圍(“a5”)。“值”查詢開始日期。
結束日期= ws1。範圍(“a6”)。“值”查詢結束日期。
公司= ws1。範圍(“a7”)。“值”查詢公司名稱。
redimedata(1到拉斯特羅·IDX,1到1)存儲壹組查詢結果。
ReDim fData(1到lastRowIdx,1到1)
ReDim gData(1到lastRowIdx,1到1)
ReDim hData(1到lastRowIdx,1到1)
ReDim iData(1到lastRowIdx,1到1)
ResultRowIdx = 1‘要寫入ws1的查詢結果的起始行號。
循環遍歷數據源的每壹行。
對於rowIdx = 2到lastRowIdx
根據查詢條件過濾數據
如果(ws2。單元格(rowIdx,2)。值& gt=開始日期和ws2。單元格(rowIdx,2)。價值& lt=結束日期)或(ws2。單元格(rowIdx,3)。價值=公司)那麽
將篩選後的數據存儲在結果數組中。
eData(resultRowIdx,1)= ws2。單元格(rowIdx,5)。價值
fData(resultRowIdx,1)= ws2。單元格(rowIdx,4)。價值
g data(resultRowIdx,1)= ws2。單元格(rowIdx,3)。價值
hData(resultRowIdx,1)= ws2。單元格(rowIdx,9)。價值
iData(resultRowIdx,1)= ws2。單元格(rowIdx,6)。價值
resultRowIdx = resultRowIdx+1
如果…就會結束
下壹個rowIdx
將結果數組中的數據寫入ws1中的指定行和列。
ws1。範圍(\“E 10:E \“u 0026(resultRowIdx-1+10))。值= eData
ws1。範圍(\“F 10:F \“u 0026(resultRowIdx-1+10))。值= fData
ws1。範圍(\“G 10:G \“u 0026(resultRowIdx-1+10))。Value = gData
ws1。範圍(\“H 10:H \“u 0026(resultRowIdx-1+10))。Value = hData
ws1。範圍(\“I 10:I \“u 0026(resultRowIdx-1+10))。值= iData
末端接頭
```
將上述代碼復制到VBA窗口並保存。在Sheet1中添加按鈕或快捷鍵,並觸發此代碼查詢數據。