“找不到具有指定名称的项目”。错误

时间:2019-09-16 13:09:17

标签: excel vba

我制作了宏代码,以便在excel文件打开时检查所有工作表中的单元格$explode_number = str_split($number); 。当"w6"为空时,它将隐藏图"w6",而仅显示图"FG"。 当"F"不为空时,它应隐藏图"w6"而仅显示图"F"。我将每个图的名称分别设置为"FG""F"。但是在 "FG"宏中的wsht.Shapes.Range(Array("FG")).Visible = msoFalse行指出“找不到具有指定名称的项目”。我确定图表名称为HideFG,但是为什么会这样呢?有一个能解决这个问题的Excel天才吗?

"FG"

1 个答案:

答案 0 :(得分:2)

除了调用另一个宏,您还可以尝试以下操作:

如果您指的实际上是Shapes

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets
    ws.Shapes.Range(Array("F", "FG")).Visible = False
    If ws.[W6] = 0 Then
        ws.Shapes("F").Visible = True
    Else
        ws.Shapes("FG").Visible = True
    End If
Next ws

End Sub

或者当它们实际上是ChartObjects时,则:

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets
    If ws.[W6] = 0 Then
        ws.ChartObjects("F").Visible = True
        ws.ChartObjects("FG").Visible = False
    Else
        ws.ChartObjects("F").Visible = False
        ws.ChartObjects("FG").Visible = True
    End If
Next ws

End Sub

根据您的this问题,我觉得您可能不想循环所有工作表。

在这种情况下,请更改:

For Each ws In ThisWorkbook.Sheets

进入:

For Each ws In Sheets(Array("sheet1", "sheet2", "sheet3"))

让我知道它是否对您有用:)