代码之家  ›  专栏  ›  技术社区  ›  Corus

如果宏在2秒内运行,则以不同方式运行

  •  0
  • Corus  · 技术社区  · 7 年前

    我正在尝试为将合并的快捷方式构建宏,如果再次快速连续触发键盘快捷方式,将合并整个选择。

    我遇到的问题是,似乎无法在同一个子系统仍在运行时调用它。有没有一种方法可以创建一个仍在运行的函数/子函数,或者有其他方法可以解决这个问题?

    Sub MergeAcross()
    Selection.Merge (Not MergeAll)
    If MergeAll Then
        MergeAll = False
    Else
        MergeAll = True
        Dim NowTick As Long
        Dim EndTick As Long
        EndTick = GetTickCount + (2000)
        Do
            NowTick = GetTickCount
            DoEvents
        Loop Until NowTick >= EndTick
        MergeAll = False
    End If
    End Sub
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   andrew    7 年前
    Sub MergeAcross()
        Static lastCallTime As Single
        Selection.Merge (Timer - lastCallTime > 2)
        lastCallTime = Timer
    End Sub