Макрос: запускать таймер каждый раз в разных ячейках - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день!Кто может помочь,нужен макрос,который запускает таймер каждый раз в разных ячейках.например,если я ввожу значение в С10,таймер запускается в Н10,С11=Н11,и т.д.?и чтобы он работал не на одном листе,а во все книге?возможно такое устроитЬ?буду очень благодарен

Решение задачи: «Макрос: запускать таймер каждый раз в разных ячейках»

textual
Листинг программы
'--- ЭтаКника ---
 
Private Sub Workbook_Open()
  Set diAdr = CreateObject("scripting.dictionary")
  bt = Now + SEC
  tmr
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  On Error Resume Next
  Application.OnTime bt, "tmr", , False
End Sub
 
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal T As Range)
Dim a$
  Set T = Intersect(T, Sh.Columns("C"), Sh.UsedRange)
  If T Is Nothing Then Exit Sub
  On Error Resume Next
  Application.EnableEvents = False
  For Each T In T.Cells
    a = "'" & Sh.Name & "'!" & T.Address(0, 0)
    If VarType(T.Value) = vbEmpty Then
      T.Offset(, 5).ClearContents
      diAdr.Remove a
    ElseIf Not diAdr.exists(Sh.CodeName & T.Address(0, 0)) Then
      diAdr(a) = Empty
    End If
  Next
  Application.EnableEvents = True
End Sub
 
'--- Module1 ---
 
Public Const SEC As Date = #12:00:01 AM#
Public bt As Date, StopTimer As Boolean, diAdr As Object
 
Sub tmr()
Dim a
  bt = bt + SEC
  Application.OnTime bt, "tmr"
  On Error Resume Next
  Application.EnableEvents = False
  For Each a In diAdr.keys
    With Range(a).Offset(, 5)
      .Value = .Value + SEC
    End With
  Next
  Application.EnableEvents = True
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы