Excel 如何基于另一个工作表中的数字取消隐藏一个工作表中的数字单元格?

Excel 如何基于另一个工作表中的数字取消隐藏一个工作表中的数字单元格?,excel,vba,Excel,Vba,您好,我想根据表1中单元格中输入的数字隐藏表2中的单元格 我所尝试的: Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False 'This is were im stuck? If Target.Address = "Sheet1!$D$387" Then Rows("28:46").Hidden = True Row

您好,我想根据表1中单元格中输入的数字隐藏表2中的单元格

我所尝试的:

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False

    'This is were im stuck? 
    If Target.Address = "Sheet1!$D$387" Then
        Rows("28:46").Hidden = True
        Rows("28:" & 28 + Val(Target.Value)).Hidden = False
        Application.ScreenUpdating = True
    End If

End Sub

什么是宏来访问表1中D387的值?

这是我自己的解决方案,由Larry提供帮助(首先对问题进行评论)

此代码将进入Sheet1的模块(如Larry所建议):


我最初把它放在Sheet2的模块中

这是我自己的解决方案,由Larry提供帮助(对这个问题的第一个评论)

此代码将进入Sheet1的模块(如Larry所建议):


我最初将其放在Sheet2的模块中

您需要将此
工作表\u Change
子模块放在Sheet1的模块中,然后将
行(“28:46”)
更改为
Sheet2.行(“28:46”)
,与下面的行类似。比较如下:
如果Target=Range(“D387:D387”),那么
Oh因此该代码将进入工作表1的模块而不是工作表2?
工作表_变更
应放入触发变更的工作表中。在您的情况下,您正在使用Sheet1的D387单元触发Sheet2中的更改。我现在明白了,谢谢您的帮助。我已经发布了一个答案,代码是100%。您需要将此
工作表\u Change
子项放入Sheet1的模块,然后将
行(“28:46”)
更改为
Sheet2.行(“28:46”)
,类似于下面的行。比较如下:
如果Target=Range(“D387:D387”),那么
Oh因此该代码将进入工作表1的模块而不是工作表2?
工作表_变更
应放入触发变更的工作表中。在您的情况下,您正在使用Sheet1的D387单元触发Sheet2中的更改。我现在明白了,谢谢您的帮助。我发布了一个答案,代码100%有效。
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$D$387" Then
        Sheet2.Rows("27:46").Hidden = True
        Sheet2.Rows("27:" & 27 + Val(Target.Value)).Hidden = False
        Application.ScreenUpdating = True
End If

End Sub