L'utilisation de VBA pour coller des valeurs d'une table à l'autre
J'ai le code VBA suivant qui prend une seule ligne à partir d'une Feuille Déposé de données, copie les données, puis colle les données dans la prochaine ligne disponible dans la Fiche de l'Exécution de la liste. Cependant, la ligne d'origine a des formules et j'ai besoin de les valeurs à coller, pas les formules. J'ai vu de nombreuses façons de le faire avec de la Gamme.PasteSpecial mais ce code n'a pas l'utilisation de la Gamme et je ne suis pas sûr de la façon de les intégrer.
Note: j'ai modifié ce code à partir d'ici: http://msdn.microsoft.com/en-us/library/office/ff837760(v=office.15).aspx. Il avait à l'origine une instruction if pour correspondre contenu dans une cellule, puis la coller dans une certaine feuille selon le contenu dans la cellule. Je n'avais qu'une feuille de copie et n'a pas besoin de la SI. Je n'ai pas vraiment besoin de trouver la dernière ligne de données à copier ce soit car il ne pourront jamais être une ligne avec une gamme de A2:N2. Mais si je sors de l'FinalRow section et les et remplacez-les avec Range("A2:N2"), il ne fonctionne pas alors je l'ai laissé ceux dans.
Des conseils sur la façon d'ajouter dans le PasteValues propriété sans faire cela d'autant plus compliqué que je l'apprécierais vraiment! Je suis aussi ouvert à la simplification de la Pour ou FinalRow variables telles que l'utilisation de la Gamme. Je suis seulement en sorte de familier avec VBA, après avoir fait un certain nombre de choses avec elle, mais généralement, après beaucoup de recherches et de modification de code. Merci!
Public Sub CopyData()
Sheets("Tabled data").Select
' Find the last row of data
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
' Loop through each row
For x = 2 To FinalRow
ThisValue = Cells(x, 1).Value
Cells(x, 1).Resize(1, 14).Copy
Sheets("Running list").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Sheets("Tabled data").Select
Next x
End Sub
Vous devez vous connecter pour publier un commentaire.
J'espère que nous pourrons réellement faire cela plus simple.
modifier: j'ai élargi un peu de sorte qu'il n'y aura pas une ligne vide au dessus
J'ai trouvé une solution qui fonctionne. J'ai enregistré une macro pour obtenir le collage spécial-y, et ajouté le code supplémentaire pour trouver la ligne vide suivante:
Il suffit de copier toutes les données en une fois, pas besoin de faire une ligne à la fois.