首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止由另一个单元格的值更改触发的Excel宏多次被触发,

停止由另一个单元格的值更改触发的Excel宏多次被触发,
EN

Stack Overflow用户
提问于 2020-05-15 14:05:24
回答 1查看 108关注 0票数 0

我的宏基本上将B2中的值复制到B列中的下一个空单元格中。

另一个工作表上的时钟在特定时间只触发宏一秒钟。

我用的是复制和粘贴宏。在确切的秒,触发器等于指定的时间,宏触发多次,通常4-6次。我只想要一份手机副本。

我改变了复制值的方式,但也发生了同样的问题。这是下面的代码;

代码语言:javascript
复制
Sub Macro5()

Sheets("Sheet1").Select
Range("B6").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("B2")

End Sub

如何阻止宏在这一秒内多次复制B2中的值?

编辑

这是我最初使用的代码。

代码语言:javascript
复制
Sub Macro5()

Range("B2").Select
Selection.Copy
Sheets("Sheet1").Select
Range("B6").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    
End Sub

我使用了一个复制和粘贴值函数。

宏是由在Sheet1上更改的另一个单元格的值触发的,以便在Sheet2上工作。该单元格的值是公式的结果,因此Sheet2必须是计算事件工作表。

Sheet2上没有任何事件类型,只运行指定在Sheet2上运行的宏。

EN

回答 1

Stack Overflow用户

发布于 2020-05-15 16:00:30

问题不在于这个宏,而在于调用它的那个宏。

代码语言:javascript
复制
Sub Macro5()
 dim time as date
 time = Now()
 'you can change time from 5 seconds to more or less
 time = (DateAdd("s", 5, time))
 Sheets("Sheet1").Select
 Range("B6").Select
 Selection.End(xlDown).Select
 ActiveCell.Offset(1, 0).Value = Range("B2")


' for 5 seconds do nothing
DoEvents
Do Until time < Now()
Loop

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61821189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档