Det här är en formelvariant.
=ANTAL(SÖK({0,1,2,3,4,5,6,7,8,9};A1))>0
Du kan ju testa att göra motsvarigheten i VBA. Dvs söka efter 0,1,2 osv och bara köra din "stora" loop om någon siffra hittas:
*******************
Dim i As Integer
Dim x As Integer
Dim test As Boolean
'Starta din i-loop. Jag anger i=1 i exemplet bara för att ha någon cell att testa på
i = 1
' När du bytt cell (i -loopen) så sätter du testvariabel till "falskt" innan du börjar tiltta i cellen
test = False
'sök efter sifrorna 0-9.
' om en siffra hittas avbryts loopen och test= TRUE. Annars söks nästa siffra (om inget hittas returnerar Instr() värdet 0)
For x = 0 To 9
If (InStr(Cells(i, 6), CStr(x)) > 0) Then
test = True
Exit For
End If
Next x
'om Test=true kör du bara din "j-loop" annars går du till nästa cell (i)
If test = True Then
' kör din j-loop
End If
*******************
Jag vet ärligt talat inte om du tjänar så mycket på det. Men du kan ju testa.
Du skulle eventuellt kunna spara det minsta värtdet från INSTR(). Då kan du starta J-loopen vid det tecknet. Men då måste du alltid gå ignom alla 9 siffror
Dim iSifferstart As Integer
Dim IPosition As Integer
iSifferstart = 0
For x = 0 To 9
IPosition = InStr(Cells(i, 6), CStr(x))
If (IPosition > 0) Then
test = True
If (iSifferstart = 0 Or (IPosition < iSifferstart)) Then iSifferstart = IPosition
End If
Next x
If test = True Then
For J = iSifferstart To Len(Worksheets("Rapport").Cells(I, 6)) OSV
End If