在Excel中添加行不会更新VB代码

我有一个Excel电子表格与一些VB代码自动隐藏基于select的某些行。 但是,如果我需要插入一行到我的Excel电子表格,它不会自动更新VB代码,因为它与公式。

这是我的代码的一个例子:

If Target.Address(False, False) = "B96" Then Select Case Target.Value Case "NO": Rows("97:101").Hidden = True Case "YES": Rows("97:101").Hidden = False End Select End If 

因此,例如,如果我在我的Excel电子表格上插入一个新行,在第90行,我会期望VB代码自动更新,并且target.address将更改为B97,等等。 它适用于Excel公式,所以有办法让代码也工作吗?

谢谢

我build议你将相关范围(例如A97:A101)的名称(部分)命名为命名范围,比方说OPTIONRNGE,然后将你的代码改为:

 Case "NO": Range("OPTIONRNGE").Rows.Hidden = True Case "YES": Range("OPTIONRNGE").Rows.Hidden = False 

等等。然后,如果插入行,它将扩展范围,代码仍然会执行相同的操作。 在VBA中命名范围几乎总是比硬编码范围或行号更好的主意。