2016-12-09 5 views
0

fehlgeschlagen Ich brauche eine kleine VBA-Anwendung für ein Schulprojekt.VBA Fehler 1004 Objektbereich für _Global

Ich habe ein Makro aufgenommen, das die Größe aller Zellen ändert und sie dann grün macht. Danach selektiere ich bestimmte Zellen und färbe sie in Weiß neu. Das Ergebnis sollte also das Excel-Logo sein. Wenn ich jedoch den Code ausführe, ist ein Fehler 1004 Range Object für _Global fehlgeschlagen.

Code:

Sub Resize() 

Columns("A:BZ").ColumnWidth = 2.71 
Rows("1:1000").RowHeight = 15 
Cells.Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .Color = 4485149 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 

Union(Range(_ 
    "O14:P15,L7:T7,S5:T6,P6:Q6,E38:F47,G46:J47,G42:J43,G38:J39,N38:O39,O40:R41,R38:S39,P42:Q43,O44:R45,N46:O47,R46:S47,W38:X47,Y46:AB47,Y38:AB39,AF38:AK39,AF40:AG47,AH46:AK47,AH42:AK43,AO38:AP47,AQ46:AT47,R6,Y7:AP9,AN10:AP31,Y29:AM31,AF10:AF28,AG24:AM24,Y24:AE24" _ 
    ), Range(_ 
    "AG19:AM19,AG14:AM14,Y14:AE14,V4:X33,U5:U32,T12:T25,S14:S23,R16:R21,Q18:Q19,Q28:T32,M26:R27,N24:Q25,O22:P23,L28:P31,H28:K30,F9:G29,H8:J27,K12:K25,L14:L23,M16:M21,N18:N19,K8:T9,M10:R11,N12:Q13" _ 
    )).Select 
Cells.Select 
With Selection.Interior 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
    .ThemeColor = xlThemeColorDark1 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
End Sub 
+0

Sie können Ihren Code Zeile für Zeile im vbexplorer durchlaufen, indem Sie F8 drücken. Können Sie das ausprobieren? – User632716

+0

Welche Zeile wirft den Fehler auf? – user3598756

+0

In welcher Zeile passiert der Fehler? Wir können Ihnen wahrscheinlich keine vollständige Lösung zusenden, aber wir können Ihnen helfen, Ihre Lösung zu erreichen. –

Antwort

1

der zu Range gefüttert Zeichenfolge muss weniger als 256 Zeichen lang sein, während der erste Reihe nur 257 hat ... also nur einige Zeichen

weiterhin den zweiten Bereich verschieben Sie bist alle Zellen statt Fahndungs ​​diejenigen

siehe Code Auswahl:

Option Explicit 

Sub Resize() 

    With Range("A1:BZ1000") 
     .ColumnWidth = 2.71 
     .RowHeight = 15 
     With .Interior 
      .Pattern = xlSolid 
      .PatternColorIndex = xlAutomatic 
      .Color = 4485149 
      .TintAndShade = 0 
      .PatternTintAndShade = 0 
     End With 
    End With 

    With Union(Range(_ 
     "O14:P15,L7:T7,S5:T6,P6:Q6,E38:F47,G46:J47,G42:J43,G38:J39,N38:O39,O40:R41,R38:S39,P42:Q43,O44:R45,N46:O47,R46:S47,W38:X47,Y46:AB47,Y38:AB39,AF38:AK39,AF40:AG47,AH46:AK47,AH42:AK43,AO38:AP47,AQ46:AT47,R6,Y7:AP9,AN10:AP31,Y29:AM31" _ 
     ), Range(_ 
     "AF10:AF28,AG24:AM24,Y24:AE24,AG19:AM19,AG14:AM14,Y14:AE14,V4:X33,U5:U32,T12:T25,S14:S23,R16:R21,Q18:Q19,Q28:T32,M26:R27,N24:Q25,O22:P23,L28:P31,H28:K30,F9:G29,H8:J27,K12:K25,L14:L23,M16:M21,N18:N19,K8:T9,M10:R11,N12:Q13" _ 
     )).Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = xlAutomatic 
     .ThemeColor = xlThemeColorDark1 
     .TintAndShade = 0 
     .PatternTintAndShade = 0 
    End With 
End Sub 
+1

BTW könnten Sie "A1: BZ1000" auf "A1: BZ50" begrenzen und immer noch das gewünschte "Excel" -Logo richtig angezeigt haben – user3598756

+0

Genau das war das Problem, danke! @ user3598756 In diesem Platz für andere Sachen aber danke für die Beratung;) –

+0

Gern geschehen. Da Sie VBA lernen, sollten Sie, wie Sie hier gesehen haben, immer vollqualifizierte 'Range'-Referenzen anstelle von' Select'/'Selection' /' Activate'/'ActiveXXX' verwenden, die für einige wenige _compressed_ sind Sonderfälle – user3598756

Verwandte Themen