2013-04-02 128 views
0

我真的不知道这段代码是什么问题,或者如果它是我的工作表的格式问题,但下面的代码不会自动运行的D8时的变化值:宏运行时单元格值更改

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Address = "$D$8" Then 
    Toggle_Rows 
End If 
End Sub 

这是一个格式化问题还是代码问题?

+0

,如果你会发生什么'Debug.print'的'Target'价值? – Marc

+0

我将如何Debug.Print? –

+0

它是在表格2下的Microsoft Excel对象 –

回答

1

看到你的问题Here

我想请你尝试之后您希望更改D8的值并让代码运行的表单。 在Excel的底部右键单击带有该表名称的Tab,然后选择查看代码

在代码窗口的顶部,您应该看到单词“(General)”。

单击下拉列表,选择“工作表”,你将会看到一个叫做

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

End Sub 

您可以删除那些行新子。现在在你选择工作表的地方右边另一个下拉这个应该说“SelectionChange”点击那个,然后从下拉菜单中选择“更改”一词。您应该看到另一个新的子

Private Sub Worksheet_Change(ByVal Target As Range) 

End Sub 

在那些2线之间是你要

If Target.Address = "$D$8" Then 
    Toggle_Rows 
End If 
+0

这有效。我之前遇到的问题是,我使用微调器更改单元格D8中的数字,并且出于某种原因,当我使用微调器时,单元格不能识别这种变化...但它可以在手动输入数据时起作用 –

+0

这实际上不是你问题的答案,它重申了你最初发布的内容。 – brettdj

+0

@DavidVanderVieren所以,您将Toggle_Rows分配给Spinner Change?右键单击微调器,使用Assign Macro并从列表中选择Toggle_Rows。 – user2140261

0

不是答案,而是一种调试方式。因为这对我手动和通过代码都适用。

尝试下列操作之一,看看你得到的值:

在工作簿转到:

Private Sub Worksheet_Change(ByVal Target As Range) 

    MsgBox Target.Address   

    Debug.Print Target.Address 

    If Target.Address = "$D$8" Then 
     Toggle_Rows 
    End If  
End Sub 
相关问题