GetValues从符合Excel VBA条件的已closures工作簿中获取

![数据集] [1]我有一个macros从封闭的工作簿GetValues 。 macros工作,并获得我的数据,但我错过了如何使其获得只有任何数据与帐户P 15178.源数据包含5个帐户,但我只需要获得一个帐户。 帐户号码列在源数据的“A”列中。

这是我迄今为止:

Sub test() GetValuesFromAClosedWorkbook "H:\VBA", "DNAV.xlsx", "DNAV", "A1:F250" End Sub Sub GetValuesFromAClosedWorkbook(fPath As String, _ fName As String, sName, cellRange As String) With ActiveSheet.Range(cellRange) .FormulaArray = "='" & fPath & "\[" & fName & "]" _ & sName & "'!" & cellRange .Value = .Value End With End Sub 

数据集:

以下是您可以尝试的方法:

 Sub GetValuesFromClosedWorkbook(fpath as string, fname as String, _ sname as String, cellRange as String, criteria as String) Activesheet.AutoFilterMode = False With Activesheet.Range(cellRange) .FormulaArray = "='" & fpath & "\[" & fname & "]" & sname & "'!" & cellRange .Value = .Value .AutoFilter Field:=1, Criteria1:= "<>" & criteria .Offset(1,0).SpecialCells(xlCellTypeVisible).EntireRow.Delete End With Activesheet.AutoFilterMode = False End Sub 

然后打电话给你的子这样:

 GetValuesFromClosedWorkbook "H:\VBA", "DNAV.xlsx", "DNAV", "A1:F250", "P 15178" 

没有testing,没有办法在我的手机testing:)所以我把它留给你。
完全基于你的屏幕截图。
编辑它以满足您的需求。

这个答案是完全基于你的数据集的形象。 如果有什么推迟,你需要调整代码。

 Sub test() GetValuesFromAClosedWorkbook "H:\VBA", "DNAV.xlsx", "DNAV", "A1:F7" 'since your product only goes to row 7, this should be good. If your data is not sorted this way all the time, you will need a whole other solution. End Sub Sub GetValuesFromAClosedWorkbook(fPath As String, _ fName As String, sName, cellRange As String) With ActiveSheet.Range(cellRange).Offset(6) 'offsetting by 6 rows should get the formula starting on cell A7 .FormulaArray = "='" & fPath & "\[" & fName & "]" _ & sName & "'!" & cellRange .Value = .Value End With End Sub