2017-07-07 2 views
0

Ich habe eine andere einfache Syntax Frage, die ich nicht ganz herausfinden kann. Ich möchte alle Zellen in einer Spalte so ändern, dass sie einen unteren Rand haben und eine Variable haben, um die letzte Nacht mit Daten darüber herauszufinden.1004 Fehler für Bereich Argument

Mein Code ist unten und ich glaube, die Fehler ist, wie ich versuche, die letzte Zelle zu definieren.

wsSheet.Range("F11:wsSheet.Cells(LastRowForSig, 6)").Borders(xlEdgeBottom).LineStyle = xlContinuous 
+0

Wie haben Sie erklären 'wsSheet'? – BruceWayne

+0

Als Arbeitsblatt: Dim wsSheet As Worksheet –

+0

https://Stackoverflow.com/q/10098802/1188513 - Sie haben Code, der ausführbar sein soll, in doppelte Anführungszeichen eingeschlossen; VBA sieht dann nur ein Zeichenfolgenliteral. –

Antwort

0

Try this:

With wsSheet.Range("F11", wsSheet.Cells(LastRowForSig, 6)).Borders 
    .value = 1 
    .item(xlEdgeLeft).LineStyle = xlNone 
    .item(xlEdgeRight).LineStyle = xlNone 
    .item(xlEdgeTop).LineStyle = xlNone 
End With 
0

Versuchen Sie diesen Code unter

Dim r1 as Range, r2 as Range 
Set r1 = wsSheet.Range("F11") 
Set r2 = wsSheet.Cells(LastRowForSig, 6) 

wsSheet.Range(r1 & ":" & r2).Borders(xlEdgeBottom).LineStyle = xlContinuous 

nach Wunsch bearbeitet werden.

+0

Ich habe es versucht und bekomme immer noch die 1004-Methode Bereich von Objekt Arbeitsblatt Fehler fehlgeschlagen. –

+0

um ein wenig pingelig zu sein, stellen Sie sicher, dass Sie ein Leerzeichen zwischen dem '&' und beliebigen Argumenten haben. Manchmal fügt VBA es nicht automatisch hinzu und ich habe zuvor Fehler bekommen. – BruceWayne

+0

Versuchen Sie mit den neuen Änderungen. Ich bin mir nicht sicher, warum die vorherige Version nicht funktioniert hat. –

1

Sie sollten E. Trauger Antwort akzeptieren, aber hier ist eine leichte Variation

With wsSheet 
    .Range("F11", .Cells(LastRowForSig, 6)).Borders(xlEdgeBottom).LineStyle = xlContinuous 
End With 
+0

Muss ich etwas ändern, damit der Rahmen in allen Zellen in der Spalte angezeigt wird, weil er gerade in der untersten Zelle der Spalte angezeigt wird –

+0

Das liegt daran, dass Sie nur den unteren Rand angegeben haben. Ersetzen Sie 'Borders (xlEdgeBottom)' durch 'Borders'. – SJR

Verwandte Themen