繁体   English   中英

Excel VBA,工作表中的代码无法正常工作

[英]Excel VBA, code in worksheet not working

我在sheet1中有以下代码(注意 - 此代码位于wroksheet对象中,而不是工作簿对象或模块中):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
r = ActiveCell.Row
Cells(r - 1, 7).Value = Now()
ActiveWorkbook.save
End Sub

有人可以告诉我为什么:1。ActiveWorkbook.save上面没有工作 - 它被卡在无限循环中; 2.为什么我不能只按F8来完成代码

我试图将ActiveWorkbook.save放在一个单独的模块中,然后从工作表中的代码调用该函数,但也陷入无限循环。

您需要禁用事件以避免无限循环

Private Sub Worksheet_Change(ByVal Target As Range)
application.enableevents=false
    Cells(target.row - 1, 7).Value = Now()
application.enableevents=true

ActiveWorkbook.save
End Sub

导致无限循环,因为当您使用当前日期更新单元格时,这会导致工作表更改事件再次调用事件代码。 您需要禁用事件,如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim r As Integer
r = ActiveCell.Row

Application.EnableEvents = False    
Cells(r - 1, 7).Value = Now()    
Application.EnableEvents = True    
ActiveWorkbook.Save

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM