VBA Excel obtenez le nom de fichier à partir de la récupération de fichiers retournés par GetFolder.Fichiers
Je vais essayer d'obtenir le premier fichier d'un répertoire. Je n'aime pas le "premier" n'est pas bien défini dans ce cas, et je ne me soucie pas si je vais obtenir un fichier différent à chaque fois que j'appel mes sous.
J'essaie d'utiliser:
Dim FSO As Object
Dim SourceFolder As Object
Dim FileItem As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder(SourceFolderName)
Set FileItem = SourceFolder.Files.Item(0)
mais cela renvoie une erreur du compilateur ("Invalid argument ou appel de procédure")
Pourriez-vous me dire comment faire ce travail?
Grâce,
Li
Avez-vous essayé avec l'article 1? Je pense que dans une collection, le premier indice est de 1 et pas 0
Oui je l'ai fait, eu la même erreur
Voir le code ci-dessus, GetFolder obtient "sourceFolderName" qui est une chaîne... désolé, j'ai oublié d'ajouter à sa déclaration. J'ai débogué et vu que l'erreur est donnée sur la dernière ligne de code
Ah! J'ai oublié le nom de la variable.
Oui je l'ai fait, eu la même erreur
GetFolder
Méthode accepte une chaîne de caractères où, comme SourceFolder
est défini en tant qu'objet.Voir le code ci-dessus, GetFolder obtient "sourceFolderName" qui est une chaîne... désolé, j'ai oublié d'ajouter à sa déclaration. J'ai débogué et vu que l'erreur est donnée sur la dernière ligne de code
Ah! J'ai oublié le nom de la variable.
OriginalL'auteur user429400 | 2013-10-22
Vous devez vous connecter pour publier un commentaire.
Il me semble que
SourceFolder.Files
n'accepte une chaîne de caractères comme la clé, tout comme vous avez noté avecScripting.Folders
. Je pense que Santosh la réponse est le chemin à parcourir, mais voici une encombrants la modification de votre code qui renvoie à la "première" fichier dans le dossier:OriginalL'auteur Doug Glancy
Vous pouvez utiliser le bulit dans
Dir
fonctionCi-dessous est un exemple de code qui renvoie le premier fichier trouvé le nom de dossier de Test.
OriginalL'auteur Santosh
C'est vrai que VBA a une limite (un bug ou défaut de conception à mon avis) dans lequel un objet de système de fichiers la récupération de Fichiers ne peut pas être consulté par l'élément numéro d'index, seulement par chaque élément du fichier chemin d'accès de la chaîne de valeur. La question d'origine posté ici sur l'accès seul le premier élément dans les Fichiers de la collection, mais il touche à un problème général pour lequel il y a deux raisonnable des solutions de contournement: la création et l'utilisation d'un objet de Fichier méta-collection de Fichiers ou d'un tableau d'objet de fournir un accès indexé à un des Fichiers de la collection. Voici une démo de routine:
OriginalL'auteur pstraton
- Je résoudre le problème de cette Façon:
N'oubliez pas d'ajouter une Référence à Microsoft Scripting Runtime dans votre projet
Il fonctionne pour moi... j'espère que cela vous Aider les gars.
OriginalL'auteur Genaro Gamiño Sánchez
Pourquoi ne pas simplement utiliser une fonction pour parcourir les fichiers dans le dossier jusqu'à ce que vous obtenez celui que vous voulez? En supposant que vous êtes à l'aide de l'ofs comme détaillé dans d'autres posts ci-dessus, il suffit de passer le Dossier, et l'Index du fichier que vous voulez, il pourrait être n ° 1 ou n'importe quel autre fichier dans le dossier.
OriginalL'auteur user8068006