Copiez et Collez la Ligne Entière
Fonction: je suis en train de travailler sur un petit projet où j'ai besoin de recherche de chaque cellule dans une colonne pour le mot "Inconnu" s'il contient le mot puis copiez la ligne entière sur une nouvelle feuille.
Problème: je suis le "cet Objet ne gère pas cette propriété méthode." erreur. Je crois qu'il est quelque part à l'intérieur de la copie de la déclaration (pas de destination). C'est vraiment simple mais je n'arrive pas à résoudre ce problème.
Sub CheckRows()
Dim b As Range
Dim SrchRng As Range
Set b = ActiveWorkbook.Sheets("Sheet 2").Range("A1")
Set SrchRng = ActiveWorkbook.Sheets("Sheet 1").Range("G1")
Do While SrchRng.Value <> ""
If SrchRng.Value = "Unknown" Then
Worksheets("Sheet 1").SrchRng.EntireRow.Copy _
Destination:=Worksheets("Sheet 2").b
Set b = b.Offset(1, 0)
Set SrchRng = SrchRng.Offset(1, 0)
Else: Set SrchRng = SrchRng.Offset(1, 0)
End If
Loop
End Sub
Lorsque vous obtenez le message d'erreur, maintenez la touche CTRL enfoncée et appuyez sur la touche PAUSE/BREAK. Il peut vous inviter à entrer dans le Débogueur. Si elle le fait, appuyez sur le bouton de DÉBOGAGE. Il doit mettre en évidence la ligne de code exacte qui est la cause de l'erreur. Pouvez-vous nous dire quelle ligne de code est mis en avant?
Si un
SrchRng comprend déjà une référence à ActiveWorkbook.Sheets("Feuille 1"), je pense donc que vous pouvez simplement utiliser SrchRng.EntireRow.Copie etc. De la même façon avec b.
Merci pour vos conseils. Il a été un certain temps depuis que j'ai la dernière utilisation de VBA j'ai donc obtenu rouillé et que cette aide secouer les toiles d'araignée.
Si un
Do While
boucle peut atteindre votre objectif de copier des lignes qui correspondent à des "Inconnus" dans la colonne G, à l'aide d'Excel intégré dans l' .Autofilter
méthode est probablement un meilleur choix que vous pouvez récupérer toutes les lignes correspondantes en un seul coup. Voici un lien MSDN: msdn.microsoft.com/en-us/library/office/...SrchRng comprend déjà une référence à ActiveWorkbook.Sheets("Feuille 1"), je pense donc que vous pouvez simplement utiliser SrchRng.EntireRow.Copie etc. De la même façon avec b.
Merci pour vos conseils. Il a été un certain temps depuis que j'ai la dernière utilisation de VBA j'ai donc obtenu rouillé et que cette aide secouer les toiles d'araignée.
OriginalL'auteur Landen Wasserstrom | 2014-08-12
Vous devez vous connecter pour publier un commentaire.
Essayer
Range.EntireRow.Value
PropriétéDans
OriginalL'auteur EvenPrime
Considérons la situation suivante:
Sheet 1
a un bloc de données, avec des "Inconnus" entrées dans la colonne G, etSheet 2
est vide.Par la définition du bloc de données comme un
Range
objet et l'application d'une.Autofilter
qui identifie le "Inconnu", il suffit simplement de copier les résultats filtrés àSheeet 2
. Il y a beaucoup commenté le script ne fonctionne tout simplement que:Voici les résultats sur
Sheet 2
:Content d'avoir pu aider -- c'est vraiment un outil très pratique car il fonctionne de la même manière, de nombreux utilisateurs d'exploiter donné le même problème, et il vous permet de passer en boucle dans de nombreuses situations
Ce code ne fonctionne pas, il y a beaucoup de données dans la feuille sheet1 à cette ligne .SpecialCells(xlCellTypeVisible).Copy Destination:=Dest Est-il une solution? (1 million de lignes)
1 million de lignes est très proche d'Excel limite de ligne. Deux questions: (1) cette grande ouverture de fichier réussi, et (2) quelle est l'erreur?
OriginalL'auteur Dan Wagner