2017-09-11 6 views
0

私はここで別の答えからこのコードを得ました。実際にファイルを引っ張っている場所を実際に選択できるので、私が行っていたよりも優れています。しかし、私はVLOOKUPで正確にファイル名を得ることができないようですね? VLOOKUPの直後にエラー1004が発生します。多分何か間違っているかもしれません。私はこのコードをコピーして、必要なものを置き換えましたが、別の目が必要です。前もって感謝します。VLOOKUPの問題でファイルの場所を使用

Dim x As String 
Dim lNewBracketLocation As Long 

x = Application.GetOpenFilename(_ 
    FileFilter:="Excel Files (*.xls*),*.xls*", _ 
    Title:="Choose previous quarter's file", MultiSelect:=False) 

MsgBox "You selected " & x 
'Find the last instance in the string of the path separator "\" 
lNewBracketLocation = InStrRev(x, Application.PathSeparator) 
'Edit the string to suit the VLOOKUP formula - insert "[" 
x = Left$(x, lNewBracketLocation) & "[" & Right$(x, Len(x) - lNewBracketLocation) 

Range("V2").Select 
ActiveCell.FormulaR1C1 = "=VLOOKUP($E2,'" & x & "]file_2017072732'!$B$5:$AP$9486,18,FALSE)" 
' ERROR 1004 
Selection.AutoFill Destination:=Range("V2:V177") 
Range("V2:V177").Select 

私がその点に達すると、xが"C:\Name\Name\Name\[Filename.xlsx"に等しいことが示されます。

これはその形式にする必要がありますか?

+0

@ YowE3kああ、実際はそれではありませんでした。私のメインポストではスラッシュがありました...しかし、私はそれがフォーマットの問題を引き起こしたと思います。別のものを入れて、正しく表示しました。そこには実際にスラッシュがあります。 – Robillard

答えて

2

問題は有効な形式であるように見えるxという値ではありません。

問題はA1表記を使用して書かれた式をFormulaR1C1プロパティを使用してセルに割り当てることにあります。

変更

ActiveCell.FormulaR1C1 = "=VLOOKUP($E2,'" & x & "]file_2017072732'!$B$5:$AP$9486,18,FALSE)" 
いずれか

ActiveCell.Formula = "=VLOOKUP($E2,'" & x & "]file_2017072732'!$B$5:$AP$9486,18,FALSE)" 

または

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC5,'" & x & "]file_2017072732'!R5C2:R9486C42,18,FALSE)" 

から

、それがOKでなければなりません。

+0

ええ、他の部品をR5C2に切り替えることになったので、実際にはうまく機能しています。しかし、私はそれを使用して好きではありません。私はその数式をコピーして、他の数式の中には何らかの理由でそれを使用するマクロを作成したときのように、その数式を使用するものがあるため、それを切り換えませんでした。ご協力いただきありがとうございます!私はそれがすべてA1に戻って修正したら、それがうまくいくはずだと思っています! – Robillard