我正在尝试根据不同工作表上单元格的值来更改形状的字体颜色,并不断获得
运行时错误“ 1004”:
Private Sub Colours()
Dim firstSheet As Worksheet, secondSheet As Worksheet
Set firstSheet = Sheets("Stats - Overall")
Set secondSheet = Sheets("Dashboard")
If firstSheet.Range("I41") > 0 Then
secondSheet.Shapes("Freeform: Shape 19").TextFrame.Characters.Font.Color = RGB(69, 255, 69)
ElseIf firstSheet.Range("I41") < 0 Then
secondSheet.Shapes("Freeform: Shape 19").TextFrame.Characters.Font.Color = RGB(255, 0, 0)
Else
secondSheet.Shapes("Freeform: Shape 19").TextFrame.Characters.Font.Color = RGB(250, 200, 15)
End If
End Sub
我不知道我们出了什么问题。
答案 0 :(得分:1)
第一件事-在:
之后删除Else
。这不是Python,而是:
probably will fail your code somewhere some day。例如。在这里:
Sub TestMe()
If False Then:
Debug.Print "OK"
End Sub
然后,可能有很多原因导致1004错误。通常,它是具有锁定形状的锁定工作表。或类似的东西。通常,构建类似这样的东西,它正在工作表中工作并尝试从那里开始工作:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
With Shapes(1).TextFrame.Characters.Font
If Range("A1") > 0 Then
.Color = RGB(0, 0, 0)
Else
.Color = RGB(200, 200, 200)
End If
End With
End Sub