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/...