Warum führt Range("D5:D6", "C13:D14", "C16:D17").Locked = True in Excel VBA zum Fehler 'falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft'?

Antwort

Der Fehler „falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft“ tritt auf, weil die Syntax von `Range` in deinem Beispiel nicht korrekt ist. **Erklärung:** Die `Range`-Funktion in VBA akzeptiert entweder: - Einen einzelnen Bereich als String, z. B. `Range("A1:B2")` - Zwei Bereiche als zwei Argumente, z. B. `Range("A1", "B2")` (ergibt den Bereich von A1 bis B2) - Zwei Bereiche als zwei Argumente, z. B. `Range("A1:B2", "C3:D4")` (ergibt einen zusammengesetzten Bereich) **Aber:** Du hast **drei** Argumente übergeben: `Range("D5:D6", "C13:D14", "C16:D17")` Das ist nicht erlaubt, da `Range` maximal **zwei** Argumente akzeptiert. **Korrekte Vorgehensweise für mehrere, nicht zusammenhängende Bereiche:** Du kannst mehrere Bereiche mit der `Union`-Funktion zusammenfassen: ```vba Union(Range("D5:D6"), Range("C13:D14"), Range("C16:D17")).Locked = True ``` **Fazit:** Der Fehler entsteht, weil du zu viele Argumente an `Range` übergibst. Verwende stattdessen `Union`, um mehrere Bereiche zusammenzufassen. Weitere Infos: [Range-Objekt (Microsoft)](https://learn.microsoft.com/de-de/office/vba/api/excel.range) [Union-Methode (Microsoft)](https://learn.microsoft.com/de-de/office/vba/api/excel.application.union)

Kategorie: Technik Tags: Excel VBA Range
Neue Frage stellen

Verwandte Fragen

Kann man in Excel VBA den Shape-Namen dynamisch zusammensetzen, um dessen Sichtbarkeit festzulegen?

Ja, das geht in Excel VBA, aber es gibt ein paar kleine Fehler in deinem Beispiel. Hier ist die korrekte Schreibweise: ```vba Dim nbr As Integer Dim txt As String Dim form As String nbr = 11 txt = &... [mehr]

Kann man mehrere Shapes gleichzeitig in VBA sichtbar machen?

Ja, das lässt sich in VBA (Visual Basic for Applications) verkürzen, indem du eine Schleife verwendest. Beispiel: ```vba Dim i As Integer For i = 2 To 4 Shapes("Button " &... [mehr]

Wie erstelle ich in Excel ein Makro, das Wert C auf 5 setzt, wenn die Differenz zwischen Wert A und Wert B größer als 1 ist?

Hier ist ein Beispiel für ein einfaches Excel-Makro (VBA-Code), das deine Anforderung umsetzt: Angenommen, - Wert A steht in Zelle A1 - Wert B steht in Zelle B1 - Wert C soll in Zelle C1 g... [mehr]

Funktioniert folgender VBA-Code: for i = 1 to 3 x=choose(i, "Button 3", "Button 5", "Button 7") Shapes(x).Visible = msoTrue?

Dein Code-Snippet sieht nach VBA (Visual Basic for Applications) aus, wie es z.B. in Excel oder PowerPoint verwendet wird. Die Grundidee ist korrekt, aber die Syntax ist nicht ganz richtig. Hier die k... [mehr]

Gibt es eine Möglichkeit, die Sichtbarkeit von Button 1 per VBA wie bei Rows zu toggeln?

Der von dir gezeigte VBA-Code bezieht sich auf das Aus- und Einblenden von Zeilen in Excel. Für einen Button (z.B. ein Steuerelement wie ein „Button 1“ aus der Formular- oder ActiveX-... [mehr]

Warum erscheint beim Öffnen eines Excel-Blattes mit Worksheet_Activate und PivotTables(1).RefreshTable die Fehlermeldung 'Bezug ungültig'?

Die Fehlermeldung „Bezug ungültig“ beim Ausführen von `PivotTables(1).RefreshTable` in der `Worksheet_Activate`-Prozedur deutet darauf hin, dass die PivotTable entweder nicht exi... [mehr]