我已经在这几天苦苦挣扎了
我有以下代码,当满足某个If条件时,该代码会复制和粘贴值(工作簿每秒都会将实时数据送入多张纸)。
代码当前位于模块中,因为IF条件可以应用于工作簿中的所有工作表。
我遇到的问题是代码只能在活动表上运行。我需要它在工作簿中的所有工作表上运行。我尝试了多个循环但没有成功。理想情况下,我需要代码在后台运行所有工作表(即不激活它们)。任何帮助将不胜感激。
Dim TimeToRun
Sub auto_open()
Call SchedulePrices
End Sub
Sub SchedulePrices()
TimeToRun = Now + TimeValue("00:00:15")
Application.OnTime TimeToRun, "CopyPrice"
End Sub
Sub CopyPrice()
Calculate
If Range("AM7") = "1" Then
Range("AM10:AM69").Value = Range("K9:K68").Value
Range("AL10:AL69").Value = Range("B9:AM68").Value
Range("AM8:AM9").Value = Range("C2:C3").Value
End If
'run the timer sub
Call SchedulePrices
End Sub
Sub auto_close()
On Error Resume Next
Application.OnTime TimeToRun, "CopyPrice", , False
End Sub
答案 0 :(得分:0)
Sub CopyPrice()
Dim sht as Worksheet
For Each sht in Worksheets
If sht.Range("AM7") = "1" Then
sht.Calculate
sht.Range("AM10:AM69").Value = sht.Range("K9:K68").Value
sht.Range("AL10:AL69").Value = sht.Range("B9:AM68").Value
sht.Range("AM8:AM9").Value = sht.Range("C2:C3").Value
End If
Next
'run the timer sub
Call SchedulePrices
End Sub