Excel VBA案例不识别单元格的值

我试图使用VBA来隐藏/显示在同一个工作簿名为Invoice单独的工作表上的一组行

为此,在InputForm表上,有一个单元格( N14 )使用=ISBLANK(D53)来检查D53包含任何内容,显然返回TRUE/FALSE

从这个im试图在VBA中运行一个If语句来隐藏/显示行的基础上,单元格N14是否包含TRUE/FALSE

我试过的代码工作正常,如果我手动inputTRUE / FALSE,但不是如果它是由公式自动input。

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(False, False) = "N14" Then Select Case Target.Value Case "TRUE": Sheets("Invoice").Rows("57:123").Hidden = True: Case "FALSE": Sheets("Invoice").Rows("57:123").Hidden = False: End Select End If End Sub 

单元格N14的格式是“文本”

正如我在评论中提到的, Worksheet_Change不会在公式 结果更改时触发。 只有当你改变单元格的时才会触发。 您应该查看Worksheet_Calculate事件:

 Private Sub Worksheet_Calculate() Application.EnableEvents = False Sheets("Invoice").Rows("57:123").Hidden = Range("N14").Value Application.EnableEvents = True End Sub