VBA Excel - Rahmen hinzufügen
Hallo liebes Adminstrator.de Forum,
ich habe ein kleines Problemchen mit meinem VBA Script.
Ich möchte gerne noch einen Rahmen in die bestehende Sub einfügen. Jedoch klappt es nicht so richtig.
Hier mal der aktuelle Code:
Gruß,
unkwownuser
ich habe ein kleines Problemchen mit meinem VBA Script.
Ich möchte gerne noch einen Rahmen in die bestehende Sub einfügen. Jedoch klappt es nicht so richtig.
Hier mal der aktuelle Code:
Sub assignStyle(xE, fromColumnNumber, toColumnNumber)
xE.Range(fromColumnNumber, toColumnNumber) = value
xE.Range(fromColumnNumber, toColumnNumber).Font.Name = "Tahoma"
xE.Range(fromColumnNumber, toColumnNumber).Font.Size = 12
xE.Range(fromColumnNumber, toColumnNumber).Font.Italic = True
xE.Range(fromColumnNumber, toColumnNumber).Font.Bold = True
xEl.Range(fromColumnNumber, toColumnNumber).Font.Underline = True
With xE.Range("A1")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
End Sub
Gruß,
unkwownuser
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 124201
Url: https://administrator.de/contentid/124201
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
10 Kommentare
Neuester Kommentar
Hallo unkwownuser!
Versuchs mal mit:
Gruß Dieter
Versuchs mal mit:
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Gruß Dieter
Hallo unkwownuser!
Der Rahmen sollte funktionieren und der Fehler ist wohl das hier:
Was ist value? sehe ich nirgends
Gruß Dieter
Der Rahmen sollte funktionieren und der Fehler ist wohl das hier:
xE.Range(fromColumnNumber, toColumnNumber) = value |
Gruß Dieter
Hallo unkwownuser!
Unklar ist, was Du für Parameter an die Sub übergibst (Call assignStyle(?, ?, ?,...)
Sollte sein:
Die Sub assignStyle(xE, fromColumnNumber, toColumnNumber,...) sollte lauten:
oder:
Range ( fromColumn, toColumn) ist ja total falsche Syntax. Hatte ich garnicht drauf geachtet
Wohl eher:
D.h. bei den Parametern fehlen noch die Zeilen?
Gruß Dieter
Unklar ist, was Du für Parameter an die Sub übergibst (Call assignStyle(?, ?, ?,...)
Sollte sein:
Call assignStyle( Sheet, Integer, Integer ...) |
Die Sub assignStyle(xE, fromColumnNumber, toColumnNumber,...) sollte lauten:
Sub assignStyle(ByRef xE , ByVal fromCol... As Integer, ByVal toCol... As Integer,...) |
Sub assignStyle( ByVal xE As Worksheet , ByVal fromCol... As Integer, ByVal toCol... As Integer,...) |
Range ( fromColumn, toColumn) ist ja total falsche Syntax. Hatte ich garnicht drauf geachtet
Wohl eher:
xE.Range(xE.Cells(fromRow, fromColumn), xE.Cells(toRow, toColumn)) |
Gruß Dieter
Hallo unknownuser und didi1954!
Nur als Anmerkung: VBS kennt natürlich keine Excel-Konstanten, daher entweder diese am Beginn des Scripts festlegen, etwa:
oder (q & d) den Wert (7) direkt verwenden.
Zu finden sind die entsprechenden Werte durch Ausgabe in VBA, also etwa
Grüße
bastla
Nur als Anmerkung: VBS kennt natürlich keine Excel-Konstanten, daher entweder diese am Beginn des Scripts festlegen, etwa:
Const xlEdgeLeft = 7
Zu finden sind die entsprechenden Werte durch Ausgabe in VBA, also etwa
MsgBox xlEdgeLeft & "_" & xlEdgeTop & "_" & xlEdgeRight & "_" & xlEdgeBottom
bastla
Hallo unkwownuser und bastla!
In Deinem Beitrag steht VBA-Excel und VBA-Script. Das es ein VB-Script (*.vbs) ist, ist so nicht zu erkennen. Aber egal, die Argumente, die Du an die Routine übergibst sind mir immer noch unbekannt? Und wie bastla schreibt, sind in VBS die Border-Konstanten unbekannt.
Wenn Deine Argumente nur aus vonSpalte und bisSpalte besteht, fehlen die Zeilenangaben? Oder sind es z.B. vonRange("A1") und bisRange("XY"). Habe leider keine Zauberkugel
Gruß Dieter
In Deinem Beitrag steht VBA-Excel und VBA-Script. Das es ein VB-Script (*.vbs) ist, ist so nicht zu erkennen. Aber egal, die Argumente, die Du an die Routine übergibst sind mir immer noch unbekannt? Und wie bastla schreibt, sind in VBS die Border-Konstanten unbekannt.
Wenn Deine Argumente nur aus vonSpalte und bisSpalte besteht, fehlen die Zeilenangaben? Oder sind es z.B. vonRange("A1") und bisRange("XY"). Habe leider keine Zauberkugel
Gruß Dieter
Hallo unkwownuser!
In VBS würde z.B. das (etwas optimiert) funktionieren:
Gruß Dieter
In VBS würde z.B. das (etwas optimiert) funktionieren:
Const xlContinuous = 1
Const xlThin = 2
Const xlAutomatic = &HFFFFEFF7
Const xlEdgeLeft = 7
Const xlEdgeTop = 8
Const xlEdgeBottom = 9
Const xlEdgeRight = 10
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add: objExcel.Visible = True
Call AssignStyle(objExcel.ActiveWorkbook.ActiveSheet, "B2", "F10")
Sub AssignStyle(ByRef Wks, ByRef FromRange, ByRef ToRange)
With Wks.Range(Wks.Range(FromRange), Wks.Range(ToRange)).Font
.Name = "Tahoma"
.Size = 12
.Italic = True
.Bold = True
.Underline = True
End With
For i = xlEdgeLeft To xlEdgeRight
With Wks.Range(Wks.Range(FromRange), Wks.Range(ToRange)).Borders(i)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next
End Sub
Gruß Dieter