Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Probleme beim Setzen von Rahmen Eigensch. in VBA

Probleme beim Setzen von Rahmen Eigensch. in VBA
14.01.2013 17:52:16
Rahmen
Hallo Forum,
habe nach einem Umstieg von EXCEL 2003 auf EXCEL 2007 folgendes Problem.
Mehrere Dateien werden hintereinander durchlaufen (durch VBA geöffnet, bearbeitet, formatiert, geschlossen) und in jeder werden unter anderem folgende Befehle ausgeführt (n = Name eines Worksheets im Workbook, "Commentary" = ein Bereichsname, b ist als Border dimensioniert)
For Each b In Range(n & "!Commentary").Borders
b.LineStyle = xlContinuous
b.Weight = xlHairline
Next
Range(n & "!Commentary").Borders(xlDiagonalDown).LineStyle = xlNone
Range(n & "!Commentary").Borders(xlDiagonalUp).LineStyle = xlNone
Das Setzen des "LineStyles" und des "Weight" zu den "Border"-Eigenschaften bringt den Error 1004: "Die LineStyle-Eigenschaft des Border-Objektes kann nicht festgelegt werden"
Hat jemand eine Idee, warum dies auf einmal nicht mehr geht? Hat sich unter EXCEL 2007 hier etwas geändert? Unter EXCEL 2003 haben diese Befehle kein Problem gebracht.
Das eigenartuige ist, dass dies erst nach einer Anzahl durchlaufener Blätter erstmals auftritt (Bufferproblem?)
Für eine Antwort danke ich jetz schon,
Richard aus Graz

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme beim Setzen von Rahmen Eigensch. in VBA
15.01.2013 10:16:55
Rahmen
Hallo Richard,
ich hab unter Excel 2010 (=nächster Verwandter zu 2007) mal versucht, dein Problem zu reproduzieren mit 3 Testdateien.
Der von dir beschriebene Fehler trat aber nicht auf. Jedoch wurde die Makro-Ausführung extrem langsam, wenn der Bereich "Commentary" sehr viele Zellen (mehrere 100000) beinhaltet. Möglicherweise kommt es auch bei vielen Dateien tatsächlich zu einem Speicherplatz-Problem, weil Excel seinen Datenmüll nicht sauber verarbeitet.
Man kann den Code noch etwas vereinfachen. Außerem sollte man den Tabellennamen in Hochkommata (') einfassen, damit Tabellennamen mit Leer- und Sonderzeichen fehlerfrei verarbeitte werden.
Alternativ kann man auch mit einem Worksheets-Objekt arbeiten. Dann vereinfacht sich die Code-Schreibweise für die Bereiche, siehe Variante.
Gruß
Franz
Nachfolgend meine Testmakros:
Sub FormatierenBorders()
Dim wb As Workbook, wks As Worksheet
Dim varDir
Dim strFile As String, n As String
strFile = Dir("C:\Users\Public\Test\Grafiken\Formatieren*.xlsx")
Application.ScreenUpdating = False
Do Until strFile = ""
Set wb = Workbooks.Open(Filename:="C:\Users\Public\Test\Grafiken\" & strFile)
For Each wks In wb.Worksheets
n = wks.Name
Select Case n
Case "Tabelle1", "Tabelle1 (2)"
'Zellrahmen formatieren
With Range("'" & n & "'!Commentary").Borders
.LineStyle = xlContinuous
.Weight = xlHairline
End With
Range("'" & n & "'!Commentary").Borders(xlDiagonalDown).LineStyle = xlNone
Range("'" & n & "'!Commentary").Borders(xlDiagonalUp).LineStyle = xlNone
End Select
Next
wb.Close savechanges:=True
Set wb = Nothing
Set wks = Nothing
strFile = Dir
Loop
Application.ScreenUpdating = True
End Sub
Sub FormatierenBorders_Var()
Dim wb As Workbook, wks As Worksheet
Dim varDir
Dim strFile As String
strFile = Dir("C:\Users\Public\Test\Grafiken\Formatieren*.xlsx")
Do Until strFile = ""
Set wb = Workbooks.Open(Filename:="C:\Users\Public\Test\Grafiken\" & strFile)
For Each wks In wb.Worksheets
Select Case wks.Name
Case "Tabelle1", "Tabelle1 (2)"
'Zellrahmen formatieren
With wks.Range("Commentary").Borders
.LineStyle = xlContinuous
.Weight = xlHairline
End With
wks.Range("Commentary").Borders(xlDiagonalDown).LineStyle = xlNone
wks.Range("Commentary").Borders(xlDiagonalUp).LineStyle = xlNone
End Select
Next
wb.Close savechanges:=True
Set wb = Nothing
Set wks = Nothing
strFile = Dir
Loop
End Sub

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige