VBA - Pour chaque Cellule de la Plage
Dans mon Excel-VBA Projet, j'ai besoin d'une boucle sur chaque cellule de plages assez souvent et j'ai toujours l'habitude de sat méthode:
Dim xyzRange As Range
Dim rCell As Range
Set xyzRange = Range("C1").SpecialCells(xlTextValues)
For Each rCell in xyzRange
'Do Stuff
Next rCell
De cette Façon, a travaillé à plusieurs reprises, mais cette fois, il ne le fait pas.
Je reçois généralement environ deux fois la quantité de cellules qui sont dans la Gamme.
Personne ne sait, ce que je devrais changer dans ce code?
Voici la pleine Fonction:
Sub checkEndFileForTrunks(ByVal endFileName, ByVal trunkValue)
Dim portRange As Range
Dim portValue As String
Dim portNumber As Integer
Workbooks.Open(PATH_OUTPUTFINAL & "\" & endFileName & ".xlsx").Activate
Set portRange = Range("C1").SpecialCells(xlTextValues)
portRange.Select
portNumber = 0
Dim rCell As Range
For Each rCell In portRange
portNumber = portNumber + 1
'MsgBox (Range("C" & portNumber).Value) I used these two lines for debugging
'Range("C" & portNumber).Select
Next rCell
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
J'ai trouvé la raison:
La Ligne
Set portRange = Range("C1").SpecialCells(xlTextValues)
ne pas sélectionner la colonne de sorte qu'il boucle sur toutes les cellules de la feuille au lieu de simplement la colonne.
Set portRange = Range("C1").EntireColumn.SpecialCells(xlTextValues)
Il fixe.
but this time it doesn't.
comment exactement, il ne fonctionne pas? quel message d'erreur avez-vous voir?- Il ne donne pas d'erreur, c'est juste des boucles trop souvent.
- Vous avez besoin de fournir plus d'informations. De préférence un petit échantillon de données, en montrant à la fois ce résultat que vous attendez à obtenir et quel est le résultat que vous obtenez en fait.
- essayez de changer
Range("C1")...
àThisWorkbook.Worksheets("SheetName").Range("C1")...
- J'ai essayé de son code. Curieusement, il retourne (boucles) toutes les cellules avec du texte sur la feuille
- ouais, pas si longtemps, nous avons découvert ce comportement inattendu avec TimWilliams. Vous pouvez voir ce post: stackoverflow.com/questions/21763800/...
Vous devez vous connecter pour publier un commentaire.
Je suppose et dire à votre gamme de 1 cellule n'est pas xlTextValues. Vous pouvez toujours parcourir votre code dans le débogueur et de voir exactement ce qui se passe.