VBA | 根据单元格值减less活动表格的数量

我正在创build一个用户界面,允许用户最多使用10个数据选项卡。 在大多数情况下,用户将使用较less的标签(可以说3)。 我感兴趣的是在10个选项卡范围内的[P2:P11]范围内运行的代码。 如果正在使用数据选项卡,则该框将返回“True”,但是当不使用选项卡时,将返回“False”值。

如果用户只使用1,2和3,我希望用户没有看到其他数据选项卡(4-10)的负担。(为方便起见,数据选项卡实际上标记为1,2,3等)。 这个macros是为了在一个名为“HIDE_ME”的页面上运行,当程序发送给用户时,这个页面将被隐藏。 我已经为以下事件创build了代码,但是我无法让它们运行。 任何人都可以帮助我find我的错误? 非常感谢。

Sub Worksheet_Change(ByVal Target As Range) If [P2] = "True" Then Sheets("1").Visible = True Else Sheets("1").Visible = False End If If [P3] = "True" Then Sheets("2").Visible = True Else Sheets("2").Visible = False End If If [P4] = "True" Then Sheets("3").Visible = True Else Sheets("3").Visible = False End If If [P5] = "True" Then Sheets("4").Visible = True Else Sheets("4").Visible = False End If If [P6] = "True" Then Sheets("5").Visible = True Else Sheets("5").Visible = False End If If [P7] = "True" Then Sheets("6").Visible = True Else Sheets("6").Visible = False End If If [P8] = "True" Then Sheets("7").Visible = True Else Sheets("7").Visible = False End If If [P9] = "True" Then Sheets("8").Visible = True Else Sheets("8").Visible = False End If If [P10] = "True" Then Sheets("9").Visible = True Else Sheets("9").Visible = False End If If [P11] = "True" Then Sheets("10").Visible = True Else Sheets("10").Visible = False End If End Sub 

 Sub DataSheetsShown() 'Test whether or not the cell value is present 'If value is present, show field If IsEmpty(Range("P2").Value) = True Then Sheets("1").Visible = False End If If IsEmpty(Range("P3").Value) = True Then Sheets("2").Visible = False End If If IsEmpty(Range("P4").Value) = True Then Sheets("3").Visible = False End If If IsEmpty(Range("P5").Value) = True Then Sheets("4").Visible = False End If If IsEmpty(Range("P6").Value) = True Then Sheets("5").Visible = False End If If IsEmpty(Range("P7").Value) = True Then Sheets("6").Visible = False End If If IsEmpty(Range("P8").Value) = True Then Sheets("7").Visible = False End If If IsEmpty(Range("P9").Value) = True Then Sheets("8").Visible = False End If If IsEmpty(Range("P10").Value) = True Then Sheets("9").Visible = False End If If IsEmpty(Range("P11").Value) = True Then Sheets("10").Visible = False End If End Sub