2017-04-06 2 views
-2

Getting a "Fehler Kompilieren: zuweisen kann nicht zu schreibgeschützte Eigenschaft" für die folgenden:Kann nicht zuweisen read-only Eigenschaft vba

With wsData.Shapes("Rectangle 1").Fill 

    .Pattern = xlGrid 
    .ForeColor.RGB = RGB(255, 0, 0) 

End With 
+2

Handhabung Haben Sie eine Frage? – CLR

+1

Probieren Sie '.BackColor.RGB = RGB (255,0,0)' –

+0

Danke David. Allerdings bekomme ich immer noch diesen Fehler - "Kompilierfehler: Kann nicht zu schreibgeschützten Eigenschaften zugewiesen werden". – ajdesanti

Antwort

1

Sie sind die ShapeRange Eigenschaft in der Mitte fehlt:

With wsData.Shapes("Rectangle 1").ShapeRange 

Voll Code:

With wsData.Shapes("Rectangle 1").ShapeRange 
    With .Fill 
     .Pattern = xlGrid 
     .BackColor.RGB = RGB(255, 0, 0) 
    End With 
End With 

Edit 1: Code mit möglichen Fehlern

Option Explicit 

Sub ColorChape() 

Dim wsData  As Worksheet 
Dim myShp  As Shape 

Set wsData = Worksheets("Sheet1") ' <-- modify to your sheet's name 

On Error Resume Next 
Set myShp = wsData.Shapes("Rectangle 1") 
On Error GoTo 0 

If myShp Is Nothing Then ' <-- unable to set the shape, doesn't exist in specified sheet 
    MsgBox "`Rectangle 1` Shape doesn't exist in " & wsData.Name & " sheet!", vbCritical 
Else 
    With myShp 
     With .Fill 
      .BackColor.RGB = RGB(255, 0, 0) 
      ' rest of your code goes here 

     End With 
    End With 
End If 

End Sub 
+0

Hallo Shai, danke für die Antwort. Nein, das hat auch nicht funktioniert. – ajdesanti

+0

@ajdesanti Bist du sicher, dass du ein "Rectangle 1" Shape hast? in 'wsData' Arbeitsblatt? –

+0

Der Fehler tritt wegen ".Pattern = xlGrid" auf, weil der Code ordnungsgemäß funktioniert, wenn ich dies mit WsData.Shapes ("Rectangle 1") ausführe. Füllen .ForeColor.RGB = RGB (255, 0, 0) Ende mit – ajdesanti

Verwandte Themen