2017-10-21 2 views
0

私は異なる3つの変数x、y & Zに異なる名前を格納しています。そして私は、私は一時変数xにファイル名を保存する必要が何らかの理由で、Y & zのためのフォーマットx_y_z.xls可変ファイル名VBAに基づくファイルをExcelで開きます

dim x,y,z as string 
x= abc 
y= def 
z= ece 
Const strfolder As String = "C:\Users\source\" 
Const samepattern As String = "x_y_Z.xls" 
samefiletype = Dir(strfolder & samepattern, vbNormal) 
workbooks.open(samefiletye) 

に基づいてファイルを開くとに基づいてファイルを開くためにそれを渡すために持っています変数名。変数名に基づいてファイルを開くことができません。

答えて

1

常に定数である必要はありませんか?あなたは変数を一定にしようとしています。おそらく変数としても宣言します。

dim x,y,z, strfolder, samepattern as string 
x= abc 
y= def 
z= ece 
strfolder = "C:\Users\source\" 
samepattern = x & "_" & y &"_" & Z & ".xls" 
samefiletype = Dir(strfolder & samepattern, vbNormal) 
workbooks.open(samefiletye) 
+1

この答えを改善するには、 'Dim x As String、y As String、z As String、strfolder As String、同じパターンAs String 'を使用してください - 変数の型を宣言しないと、しばしば準最適な方法とみなされることがあります。 –

+1

(変数1、変数2、.....、変数nは文字列のように)カンマで区切られたすべての変数は、最後に言及された型を参照していますが、それぞれを個別に宣言しなければならないと言っています。 – RafMil

+2

こんにちは、 'Dim x、y、z As String'をお持ちの場合、' z'は 'String'、' x'は 'Variant'タイプになります。おそらく、 'String'sを持つものだけを扱っているのですが、変数の型が違っていれば、おそらく問題はありません。それはしばしば、ambiuguityの元になります。 –

-1

以下のコードを変更してください。

dim x,y,z as string 
x= "abc" 
y= "def" 
z= "ece" 
Const strfolder As String = "C:\Users\source\" 
Const samepattern As String = x & "_" & y &"_" & Z & ".xls" 
samefiletype = Dir(strfolder & samepattern, vbNormal) 
workbooks.open(samefiletye) 
+0

ありがとうございますが、エラーが発生しています。定数式が必要です。どうすればそれを取り除くことができますか? –

+0

は、ansを少し変更しました、そのミスのために申し訳ありません。 – Shrikant

関連する問題