excel vba 2007 Private sub使用vba自动更改单元格

excel vba 2007 Private sub使用vba自动更改单元格,excel,vba,Excel,Vba,大家好,我一直在尝试让宏自动运行 当有人选择一个单元格时。如果他们不必选择单元格,那就太好了。它就像一个无休止的循环一样自动运行 不管怎样,我的代码是这样的 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim lastRow As Integer Dim RRnumber As Integer If Target.Column = E3 Then Sheets("RR LOG").Sele

大家好,我一直在尝试让宏自动运行 当有人选择一个单元格时。如果他们不必选择单元格,那就太好了。它就像一个无休止的循环一样自动运行

不管怎样,我的代码是这样的

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lastRow As Integer
Dim RRnumber As Integer

    If Target.Column = E3 Then

        Sheets("RR LOG").Select
            lastRow = Sheets("RR LOG").Cells(Rows.Count, "A").End(xlUp).Row
            RRnumber = Range("H" & lastRow).Value
            RRnumber = RRnumber + 1
        Sheets("RR").Select
            Range("E3").Value = RRnumber
    End If
    End Sub

我将代码保存在“ThisWorkbook”中我正在使用的工作手册是什么:D对于任何人可以在我的方式错误中提供的帮助:D

您需要将代码放入与工作表关联的模块中,以便启动程序。如需双击并添加代码的位置,请参见下图

至于“无止境循环”,excel要求用户完成一个事件来触发VBA过程,如您在示例中尝试使用的
SelectionChange
事件


另一件值得一提的事情是,当您使用Excel2007时,您可能需要删除
lasatRow
,因为数据类型
Long
,因为整数的限制刚好超过32k(因此,如果您有超过32k行,则将使用
integer
类型引发错误)。另外,您能否保证
范围(“E3”)
将是一个小于32k的整数?如果不是,您可能希望在字母数字输入的情况下使用
Long
数据类型,甚至
String

是的,我已经知道无休止的循环是一个lost:D,从我在“ThisWorkbook”中放置代码可以看出应该可以工作,因为我打开了一个工作簿,它工作得很好,当我将代码放在模块1中时,它仍然不工作,因为我认为代码有问题,但我只是不知道:D和ty,因为我不知道(用于php:D)当工作簿打开时,
Workbook\u Open
事件将在触发时工作。
SelectionChange
事件适用于特定的工作表,不会在
模块1
中工作。请参阅更新的答案以查找添加代码的位置。双击相应的工作表(红色箭头所在的位置)我让它工作,但当编辑其他宏时它会停止工作,现在我根本无法让它工作,就像它被禁用了一样。一些方法:D甚至制作了一个新的工作簿,它仍然没有运行,但其他Marco仍然工作,是的,它保存在“Sheet1(RR)”中。我尝试将代码放在“模块1”中但它仍然不起作用。在“ThisWorkbook”中,我有一个工作簿\u打开的代码运行良好,因此我认为它与编码有关,因为当我单击单元格E3时,什么都没有发生应该启动marco PS)为什么我的帖子得到了a-1?如果他们说为什么,那就好了:D