Copier les données de classeur fermé basé sur la variable définie par l'utilisateur chemin
J'ai épuisé mes capacités de recherche à la recherche d'une solution de ce. Voici un aperçu de ce que je voudrais faire:
- Utilisateur ouvre macro-enabled fichier Excel
- Immédiate invite s'affiche pour l'utilisateur de saisir ou de sélectionner le fichier de chemin de classeurs. Ils auront besoin pour sélectionner les deux fichiers, et les noms de fichier peuvent ne pas être compatibles
- Après avoir entré les emplacements de fichier, la première feuille de calcul à partir de la première sélection du fichier sera copié dans la première feuille de calcul du classeur macros activées, et la première feuille de calcul de la deuxième sélection du fichier sera copié sur la deuxième feuille de calcul du classeur macros activées.
Je suis venu à travers quelques références pour ADO, mais je ne suis vraiment pas familier avec encore.
Edit: j'ai trouvé un code pour importer des données à partir d'un fichier fermé. J'ai besoin de modifier la gamme de retourner les résultats de la variable.
Private Function GetValue(path, file, sheet, ref)
path = "C:\Users\crathbun\Desktop"
file = "test.xlsx"
sheet = "Sheet1"
ref = "A1:R30"
' Retrieves a value from a closed workbook
Dim arg As String
' Make sure the file exists
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' Create the argument
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
' Execute an XLM macro
GetValue = ExecuteExcel4Macro(arg)
End Function
Sub TestGetValue()
path = "C:\Users\crathbun\Desktop"
file = "test"
sheet = "Sheet1"
Application.ScreenUpdating = False
For r = 1 To 30
For C = 1 To 18
a = Cells(r, C).Address
Cells(r, C) = GetValue(path, file, sheet, a)
Next C
Next r
Application.ScreenUpdating = True
End Sub
Maintenant, j'ai besoin d'un bouton de commande ou d'un userform qui va immédiatement à l'utilisateur de définir un chemin d'accès au fichier et importer les données à partir de ce fichier.
avez-vous déjà construit un peu de code? où êtes-vous pris?
J'ai ajouté le code que j'ai actuellement disponibles. Il n'est pas beaucoup et je ne suis même pas sûr que je vais dans la bonne direction.
Aucune raison pourquoi vous ne voulez pas ouvrir les deux fichiers? Le code est simple et à importer les feuilles de ces fichiers à l'aide de classeurs.open()
Je n'ai pas l'esprit si les fichiers sont ouverts pendant le processus. Je ne voulais pas l'utilisateur d'avoir à ouvrir les fichiers individuellement. J'ai juste besoin d'eux pour être en mesure de sélectionner ou de consulter les fichiers de votre choix.
Poster du code dans quelques minutes...
J'ai ajouté le code que j'ai actuellement disponibles. Il n'est pas beaucoup et je ne suis même pas sûr que je vais dans la bonne direction.
Aucune raison pourquoi vous ne voulez pas ouvrir les deux fichiers? Le code est simple et à importer les feuilles de ces fichiers à l'aide de classeurs.open()
Je n'ai pas l'esprit si les fichiers sont ouverts pendant le processus. Je ne voulais pas l'utilisateur d'avoir à ouvrir les fichiers individuellement. J'ai juste besoin d'eux pour être en mesure de sélectionner ou de consulter les fichiers de votre choix.
Poster du code dans quelques minutes...
OriginalL'auteur user955289 | 2012-02-16
Vous devez vous connecter pour publier un commentaire.
Voici un code de base. Ce code demande à l'utilisateur de sélectionner les deux fichiers puis importations pertinentes de la feuille dans le classeur en cours. J'ai donné deux options. Faites votre choix 🙂
ESSAYÉ ET TESTÉ
OPTION 1 (Importer les Feuilles directement au lieu de les copier dans la feuille sheet1 et 2)
OPTION 2 (Importer les Feuilles contenu dans la feuille sheet1 et 2)
Vous êtes les bienvenus 🙂
+1 bien fait Sid
Je me suis connecté juste pour remercier et de vous faire un compliment, Siddharth Déroute. Ce code de la vôtre est une véritable œuvre d'art. J'ai été à la recherche d'un code comme ça pendant un long moment. Tellement heureux que j'ai trouvé. À partir de maintenant, ma des feuilles de calcul ont une approche totalement différente. Merci pour le partage de la un étonnant morceau de la connaissance. 🙂
OriginalL'auteur Siddharth Rout
La fonction ci-dessous lit les données à partir d'un fermé Excel fichier et renvoie le résultat dans un tableau. Il perd de mise en forme, formules, etc. Vous voudrez peut-être appeler la isArrayEmpty fonction (en bas) dans votre code principal pour tester la fonction renvoyée quelque chose.
Exemple d'utilisation:
vous pouvez également vider le jeu d'enregistrements dans la feuille à l'aide de la
CopyFromRecordset
méthode sur l'objet de la plage.OriginalL'auteur assylias