我制作了宏代码,以便在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"
答案 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"))
让我知道它是否对您有用:)