Je veux faire l'équivalent de la sélection d'une cellule dans une feuille, en appuyant sur F2 puis sur CTRL + V, de sorte que tous les formats tels que les balises, les caractères gras et les lignes de déconnection soient conservés et collés dans une seule cellule. Veuillez noter que je ne copy pas des feuilles excel, plutôt que d'utiliser excel vba pour copyr à partir d'un document Word.
J'ai essayé:
Sheets(1).Cells(1,1).Select SendKeys "{F2}", True SendKeys "v", True Application.Wait(Now + TimeValue("0:00:5")) Sheets(1).Cells(1,2).Select
Mais le code ci-dessus colle dans la cellule (1,2) de la feuille active au lieu de (1,1). Veuillez suggérer une autre méthode pour cela.
Pour copyr et coller une cellule "préserver la mise en forme" (c.-à-d. En gras, souligné, colonne de text, nouvelles lignes, caractères spéciaux (points de balle), etc. Vous pouvez utiliser la macro d'logging pour créer un code comme le suivant, qui est simple, copyz, collez. il n'est pas nécessaire d'appuyer sur F2 (car cela ne vous donnera que l'access à la valeur brute – pas le formatting):
Range("C3").Select Selection.Copy Range("D6").Select ActiveSheet.Paste
en modifiant cet exemple pour vos besoins:
With Sheets(1) .Cells(1, 1).Copy .Cells(1, 2).Select .Paste end with
SendKeys "^v", True
Cela enverra Ctrl + v. Vous ne devriez pas avoir besoin de la command Wait
car l'argument {True} pour {SendKeys} indique à Excel d'attendre jusqu'à ce qu'il soit terminé avant de continuer à continuer avec la macro. Je ne suis pas sûr de savoir s'il existe une meilleure façon de faire cela qui n'implique pas SendKeys, sauf si vous souhaitez coller dans plusieurs cellules, puis les combiner.