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