2016-05-23 6 views
0

こんにちは私はファイルを参照してvlookupの式でvbaを使用して追加できるようにする必要があります...ここに私のコードです...助けてください ファイルを選択することができますが、問題は選択のためのFileDialogフォルダのダブルタイムオープンです。ファイルのパスを参照し、VBAを使用して参照のためにVlookupに追加する必要があります


Private Sub CommandButton2_Click() 
Range("Q2").Select 
FilePath = Application.GetOpenFilename("Excel Files (*.xlsx), *.xls") 
If FilePath <> False Then 
Range("D6").Value = FilePath 
ActiveCell.FormulaR1C1 = _ 
"=VLookup(RC[-13]:R[68]C[-13],'FilePath'!R2C2:R994C6,5,False)" 

Range("Q2").Select 
Selection.Copy 
Range("P2").Select 
Selection.End(xlDown).Select 
Selection.Offset(0, 1).Select 
Range(Selection, Selection.End(xlUp)).Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 
Range("Q:Q").Copy 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
Range("Q1").Select 
Selection.Value = "Payment Method" 
Range("Q2").Select 

Dim AutoRange As Range 
Dim i As Long 

Set AutoRange = Range("Q:Q") 
    For i = 1 To 8000 
    If AutoRange.Cells(i).Value = "0" Then 
    AutoRange.Cells(i).Value = "Online" 
    Else 
    End If 
    Next i 
ActiveWorkbook.Save 
End Sub 
+0

のそれらの2行を試してみてください:のは、データが対象となり、すべてのワークブックのための「シート1」に格納されたと仮定しましょうスプレッドシートのファイルパスですか? – Absinthe

+0

スプレッドシートではありませんが、これはvlookupの式です。上記のvlookupのように...私は 'FilePath'として言及しています。つまり、ファイルを参照したいのですが、vlookupリファレンス参照しているスプレッドシートのパスを開かずに使用したい –

答えて

0

私はあなたがヨーヨーがあなたのVLOOKUPの数式であなたの情報を検索したい場所からワークシートに名前を忘れていると思います。 - あなたがファイルを参照し、追加したい

FilePath_final = Left(FilePath, InStrRev(FilePath, "\")) + "[" + Right(FilePath, Len(FilePath) - InStrRev(FilePath, "\")) + "]" 
' That is to put the "[" and "]" before and after the workbook name 

ActiveCell.FormulaR1C1 = _ 
"=VLookup(RC[-13]:R[68]C[-13],'" + FilePath_final + "sheet1'!R2C2:R994C6,5,False)" 

だから明確にする代わりに、あなたのVLOOKUPライン

関連する問題