基于excel中的变量文件名VBA打开文件
问题描述:
我有三个不同的变量x,y & Z存储不同的名称。我不得不打开一个文件基于格式x_y_z.xls基于excel中的变量文件名VBA打开文件
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)
由于某种原因,我必须在一个临时变量X保存的文件名,Y & z和传递给打开基于文件变量名称。我无法打开基于变量名称的文件。
答
不应该总是恒定的?你正试图将变量分配给常量。也许声明它也是变量。
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)
答
更改下面的代码。
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
已经改变了一点,对那个错过感到抱歉。 – Shrikant
你可以通过使用'Dim x As String,y As String,z As String,strfolder As String,samepattern As String'来改进这个答案 - 不会声明变量的类型可能经常被认为是次优的做法。 –
因此,所有通过逗号分隔的变量(变量1,变量2,.....,变量n作为字符串)是指末尾提到的类型,但是良好的实践表示我们应该声明每一个单独的单词? – RafMil
嗨,不,如果你有'Dim x,y,z As String'那么只有'z'是'String'和'x','y'将是'Variant'类型。如果你只是用String而不是变量类型的东西,这可能不是一个问题,它通常可能是一个矛盾的根源。 –