0

![データ セット][1]閉じたワークブックから値を取得するマクロがあります。マクロは機能し、データを取得しますが、アカウント P 15178 のデータのみを取得する方法がありません。ソース データには 5 つのアカウントが含まれていますが、取得する必要があるアカウントは 1 つだけです。口座番号は、ソース データの列 "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

データセット:

4

2 に答える 2

2

この回答は、データセットの画像のみに基づいています。それから何かが延期される場合は、コードを微調整する必要があります。

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
于 2012-08-24T15:23:25.783 に答える
1

あなたが試すことができるものは次のとおりです:

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"

テストされていません。私の電話でテストする方法はありません:)だから、あなたに任せます。
あなたのスクリーンショットに完全に基づいています。
必要に応じて編集してください。

于 2014-01-02T08:47:19.890 に答える