Diviser le fichier en plusieurs fichiers dans Excel
J'ai le fichier suivant dans Excel:
NAME VALUE
ABC 10
ABC 11
ABC 12
DEF 20
DEF 21
DEF 22
GHI 30
GHI 31
GHI 32
Je tiens à le diviser en fichiers par le Nom de la colonne (3 fichiers pour l'exemple ci-dessus) de la manière suivante:
Fichier: ABC.xsl
NAME VALUE
ABC 10
ABC 11
ABC 12
Fichier: DEF.xsl
NAME VALUE
DEF 20
DEF 21
DEF 22
Fichier: GHI.xsl
NAME VALUE
GHI 30
GHI 31
GHI 32
Jusqu'à présent, essayé la macro suivante:
https://sites.google.com/a/madrocketscientist.com/jerrybeaucaires-excelassistant/parse-functions/sheet1-to-wbs
Eu des erreurs d'exécution sur cette ligne ws.Range(vTitles).AutoFilter
Et après en commentant l'erreur déménagé à ws.Range(vTitles).AutoFilter Field:=vCol, Criteria1:=MyArr(Itm)
quand vCol
's la valeur est devenue vide.
Ce que je fais mal s'il vous plaît? (comme VBA n'est pas mon point fort de l'atm). Tout conseiller en ce qui concerne l'extrait ci-dessus ou un autre code qui fonctionne serait une solution viable pour moi.
- La meilleure façon de "faire" serait d'écrire une macro qui le fait pour vous 😉
- Si oui, serait-il légitime de se poser la question pour l'un, s'il vous plaît?
- Aussi, j'aimerais demander au sujet de la raison pour un downvote.
- Il ne serait pas une question légitime de nous demander d'écrire une macro pour vous. Voir comment demander et comment poser une bonne question.
- merci pour l'entrée. ok déplacé sur et élaboré de la manière que j'ai traversé jusqu'à présent, il est mieux maintenant, s'il vous plaît?
- pas vraiment, maintenant, c'est de devenir un dépannage de chat qui n'est pas ce qui DONC est. Vous avez besoin de comprendre le code que vous utilisez. Utiliser google
- laissez-nous continuer cette discussion dans le chat
- Désolé je n'ai pas eu le temps supplémentaire pour vous aider avec ce...
- Hey @BreakPhreak, a fait le code ci-dessous fonctionne?
- désolé pour le retard, essayé seulement maintenant! sérieusement, j'aimerais vous acheter une bière pour cette, puis-je?
Vous devez vous connecter pour publier un commentaire.
Je pense que cela devrait vous rendre où vous allez. Le code ci-dessous enregistre chaque groupe comme un classeur (.format xls) dans le même répertoire que le classeur qui abrite le VBA (c'est à dire
ThisWorkbook
):DataSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
retournenothing
(d'où l'erreur d'exécution). Des conseils s'il vous plaît?DataSheet
est vide? En regardant le code ci-dessus,DataSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
devraient retourner unLong
, pas unRange
(etNothing
est renvoyée lorsqu'uneRange
est raté)DataSheet
n'est pas vide, de plus la ligne suivante renvoie une valeur non vide:DataSheet.Range("A65536").End(xlUp).Row
- mais il serait erroné de supposer la limite de ligne.Juste pour le record, ce code a fonctionné pour moi sur Windows (mais pour une raison pas sur Mac):