2016-09-01 3 views
2

Ich bin neu in VBA und kämpfe mit dem Stück Code.vba finde die erste nicht leere Zeile

Ich muss die erste nicht leere Zeile finden, wo die Bedingungen gleichzeitig erfüllt sind. Es muss Text in Spalte B und C und Nummer in Spalte D und G geben (alle 4 Bedingungen müssen erfüllt sein).

würde ich für sehr dankbar Hilfe s

Antwort

0

Sie nisten SpecialCells() Methode wollen sich wie folgt:

Sub main() 

    With Worksheets("Conditions") '<--| change "Conditions" to your actual worksheet name 
     With .Range("B1", .Cells(.Rows.Count, "B").End(xlUp)) '<-- refer to column "B" cells down to last non empty one 
      With .SpecialCells(XlCellType.xlCellTypeConstants, xlTextValues) '<-- refer to its "text" cells only 
       With .Offset(, 1).SpecialCells(XlCellType.xlCellTypeConstants, xlTextValues) '<-- refer to adjacent column "text" cells only 
        With .Offset(, 1).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers) '<-- refer to adjacent column "number" cells only 
         With .Offset(, 1).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers) '<-- refer to adjacent column "number" cells only 
          MsgBox .Cells(1, 1).row '<--| get first "multifiltered" cells row 
         End With 
        End With 
       End With 
      End With 
     End With 
    End With 

End Sub 

Sie Test hinzufügen müssen vor jedem SpecialCells() zu überprüfen, dass „aktuelle“ Spalte tatsächlich einen Text/Zahlen-Wert hat, eine mit Mischung von Count() und CountA() Methode

+0

@salti, hast du das versucht? – user3598756

+0

wie geht das? – salti

+0

Sie nur [klicken Sie auf das Häkchen neben der Antwort, um es von ausgegraut auf ausgefüllt zu schalten] (http://stackoverflow.com/help/someone-answers). Danke – user3598756

3

schreiben wie unter Code verwenden und wenn & und beachten: LastRow ist Ende der Spaltenwerte.

for i = 1 to lastrow 
if cells(i,"b")<>"" and cells(i,"c")<>"" and isnumber(cells(i,"d"))= true and isnumber(cells(i,"g"))= true then 
'do something 
end if 
next i 
+0

VBA hat keine 'IsNumber' Funktion, es ist' IsNumeric'. (Es ist 'IsNumber' in Excel. Und sie funktionieren etwas anders.) – YowE3K

Verwandte Themen