Warum funktioniert mein VBA-code auslösen, eine "außerhalb der Prozedur Ungültig" Fehler?
Für das Leben von mir ich kann nicht herausfinden, warum der folgende code wirft einen compile-Fehler mit der Meldung "Ungültige außerhalb der Prozedur". Es ist die Hervorhebung der Fehler auf der Stern-Linie unten.
Option Explicit
Dim shtThisSheet As Worksheets
**Set shtThisSheet = Application.Workbook("Formatting2.xlsm").Worksheets("Sheet1")**
Sub Formatting()
With shtThisSheet
With Range("A1")
.Font.Bold = True
.Font.Size = 14
.HorizontalAlignment = xlLeft
End With
With Range("A3:A6")
.Font.Bold = True
.Font.Italic = True
.Font.ColorIndex = 5
.InsertIndent 1
End With
With Range("B2:D2")
.Font.Bold = True
.Font.Italic = True
.Font.ColorIndex = 5
.HorizontalAlignment = xlRight
End With
With Range("B3:D6")
.Font.ColorIndex = 3
.NumberFormat = "$#,##0"
End With
End With
End Sub
auch Sie versuchen, zu schwach, um eine Sammlung (Arbeitsblätter), statt ein Objekt (Arbeitsblatt)
Auch Sie sind mit
Auch Sie sind mit
with shtThisSheet
aber dann verweisen nicht, dass in Ihrem Range
Aussagen. Sie sollten mit .Range
statt.
InformationsquelleAutor Zack Withrow | 2016-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Set
Aussagen sind nicht erlaubt, außerhalb der Prozeduren. Bewegen Sie denSet
- Anweisung in dieFormatting
Verfahren:(Ich würde verschieben die
Dim
- Anweisung in der Prozedur. Ich bevorzuge es, zu vermeiden, Globale Variablen wenn möglich.)Welcher Zeile der Fehler tritt auf?
Set shtThisSheet = Anwendung.Workbooks("Formatting2.xlsm").Worksheets("Tabelle1")
Das ist der Fehler der Linie Auftritt.
Es kann sich wahrscheinlich nicht finden, eine offene Arbeitsmappe mit dem Namen Formatting2.xlsm, oder es nicht finden können, ein Blatt mit dem Namen Tabelle1 in der Arbeitsmappe.
InformationsquelleAutor Michael Liu
Können Sie Variablen deklarieren, wie global, aber Sie können nicht legen Sie Sie außerhalb in einem Verfahren wie eine sub oder Funktion.
Wenn Sie diese variable als global, dann ist es am besten, um es auf.
Workbook_Open()
Wenn Sie es nicht brauchen wie einen globalen, dann bewegen Sie sowohl die Erklärung und die set-Anweisung in die Prozedur
InformationsquelleAutor Don Thermidor_Lobster Mobster