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

时间:2013-02-20 14:51:11

标签: excel vba excel-vba excel-2010

我有一个excel 2010电子表格,其中包含一些VB代码,可根据选择自动隐藏某些行。但是,如果我需要在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公式,所以有没有办法使它适用于代码呢?

谢谢

1 个答案:

答案 0 :(得分:2)

我建议你将相关范围(例如A97:A101)的名称(部分)命名为命名范围,让我们说OPTIONRNGE,然后将您的代码更改为:

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

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