2017-10-21 40 views
0

J'ai trois variables différentes x, y & Z stocker des noms différents. et je dois ouvrir un fichier basé sur le format x_y_z.xlsOuverture de fichiers basés sur le nom de fichier variable VBA dans 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) 

pour une raison quelconque, je dois enregistrer le nom de fichier dans une variable temp x, y & z et transmettre à ouvrir le fichier en fonction le nom de la variable. Je ne suis pas en mesure d'ouvrir des fichiers basés sur des noms de variables.

Répondre

1

Ne doit pas toujours être constant? Vous essayez d'asservir variable à constante. Peut-être le déclarer aussi variable.

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

Vous pouvez améliorer cette réponse en utilisant 'Dim x As String, y As String, z As String, strfolder As String, même motif As String' - ne pas déclarer le type de votre variable peut souvent être considéré comme une pratique sous-optimale. –

+1

Donc toutes les variables séparées par une virgule comme (variable 1, variable2, ....., variable n comme chaîne) se réfèrent au type mentionné à la fin mais la bonne pratique dit que nous devrions déclarer chacun séparément? – RafMil

+2

Salut, non, si vous avez 'Dim x, y, z As Chaîne' alors seulement' z' est un 'String' et' x' et 'y' seront' 'Variant'. Probablement pas un problème si vous faites seulement des choses avec des 'String's mais avec des types de variables différents, cela peut souvent être une source d'ambigüité. –

-1

Modifiez le code ci-dessous.

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

Merci, mais je reçois une erreur Expression constante requise. Comment puis-je m'en débarrasser. –

+0

ont changé les ans un peu, désolé pour ce manque. – Shrikant