Ich habe ein großes VBA-Projekt, das mit der Änderung beauftragt wurde, wie es einige Daten sammelt.Leere Zellen - Wie man ein VBA-Verfahren/eine Funktion mit einer leeren/Null-Zelle stoppt
Grundsätzlich werden die Daten in der Spalte W auf dem Blatt eingegeben und es ist Code in das Makro ist dies:
For Each rCell In Worksheets("REPORT").Range("W2:W50")
Debug.Print rCell.Value:
sJob = rCell.Value
Es packt die Daten, die ich es in Spalte W.
greifen wollenKurz darauf schlägt er eine Funktion aus, die in diesem Code-Block ist:
vJobFolders = Split(FindJobDir(strpathtofile & sJob), ",")
For i = 0 To UBound(vJobFolders)
Und diese Funktion, genannt FindJobDir, sieht dies wie:
Function FindJobDir(ByVal strPath As String) As String
Dim sResult As String
sResult = Dir(strPath & "*", vbDirectory)
FindJobDir = UCase$(sResult)
Do While sResult <> ""
sResult = Dir
If Len(sResult) > 0 Then FindJobDir = FindJobDir & "," & UCase$(sResult)
Loop
End Function
Was geschieht, nachdem er alle Daten, packt sie es Spalte W finden können, ist es weiterhin einfach alles in den Job-Pfad hinzuzufügen. Es hört erst auf, wenn alle "Jobs" in diesem Pfad gefunden sind. Ich brauche es, damit aufzuhören, wenn Daten in Spalte W null/leer sind.
Kein Profi bei VBA, weiß nicht, was ich sagen soll oder wo ... irgendwelche Vorschläge?
Sie können den Bereich begrenzen, indem Sie die letzte Zeile mit Werten in Spalte W finden, siehe hier: http://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba Oder Sie können eine IF-Anweisung vor die zweite Zeile im ersten Codeblock setzen, um diese Iteration zu überspringen, wenn 'rCell.Value =" "' –