2017-03-03 2 views
0

ich den folgenden Code in vba Schreiben:Wenn else-Anweisung in VBA

If row_count = 28 Then Range("A28").Select 
    Else 
    Range("A29").Select 
    Selection.End(xlDown).Select 
    Range("B" & row_count & ":AE" & row_count).Select 
    Range(Selection, Selection.End(xlUp)).Select 
    Application.CutCopyMode = False 
    Selection.FillDown 
    End If 

Es gibt mir einen Fehler, der sonst ohne wenn.

Wie kann ich den Code korrigieren?

Antwort

3

die Range("A28").Select Fahren Sie mit einer eigenen Zeile (nicht als Teil der if Linie), also:

If row_count = 28 Then 
    Range("A28").Select 
Else 
    Range("A29").Select 
    Selection.End(xlDown).Select 
    Range("B" & row_count & ":AE" & row_count).Select 
    Range(Selection, Selection.End(xlUp)).Select 
    Application.CutCopyMode = False 
    Selection.FillDown 
End If 

Es two forms des Konstrukts if ist, die einzigen Zeile und mit mehreren Leitungen. Wenn Sie die Anweisungen für die then-Bedingung in dieselbe Zeile schreiben, wird dies als eine Einzellinienvariante betrachtet, so dass sich dieebenfalls in derselben Zeile befinden muss.

Denn es ist in Ihrem Fall ist nicht auf der gleichen Linie, VB die einzige Zeile unter der Annahme ist eine if Anweisung ohne else Klausel, so dass die „nackten“ else in der nächsten Zeile ist ungültig.