Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel 2013中的VBA代码中引用特定工作表_Excel_Vba - Fatal编程技术网

如何在Excel 2013中的VBA代码中引用特定工作表

如何在Excel 2013中的VBA代码中引用特定工作表,excel,vba,Excel,Vba,这非常有效,但我只希望它引用一张工作表,而不是工作簿中的每一张工作表 Private Sub Worksheet_Change() Dim LastRow As Long, c As Range Application.EnableEvents = False LastRow = Cells(Cells.Rows.Count, "AA120").End(xlUp).Row On Error Resume Next For Each c In Range("AA5:AA120" & L

这非常有效,但我只希望它引用一张工作表,而不是工作簿中的每一张工作表

Private Sub Worksheet_Change()

Dim LastRow As Long, c As Range
Application.EnableEvents = False
LastRow = Cells(Cells.Rows.Count, "AA120").End(xlUp).Row

On Error Resume Next
For Each c In Range("AA5:AA120" & LastRow)

    If c.Value = "0" Then
        c.EntireRow.Hidden = True
    ElseIf c.Value > "0" Then
        c.Activate
        c.EntireRow.Hidden = False
    End If
Next

On Error GoTo 0
Application.EnableEvents = True

End Sub

正如我所看到的,你只需要在一张纸上插入你想要的代码。右键单击图纸名称(选项卡)并选择“查看代码”,然后粘贴此代码。但是如果这在每张工作表上都运行,那么您还需要从“此工作簿”-->(Alt+F11)中删除代码并选择“此工作簿”,然后从中删除此代码。

您必须使用

Private Sub Worksheet_Change(ByVal Target As Range)
相反。 根据great的说法,“事件及其过程声明是固定的。您不能更改事件过程的名称或参数列表。”(我没有Office系统来测试它)


您可以在工作表模块中插入您的
子项
,它只在该工作表上工作。

不清楚您所说的“引用一张工作表而不是每张工作表”是什么意思。描述一下你觉得“奇怪”的情况:你做了什么,之后会发生什么?