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