【发布时间】:2016-10-14 07:38:36
【问题描述】:
我开始使用 VBA 进行编程,当然我遇到了一些问题。 我会尽力解释我的问题,如果不清楚,请告诉我。
我试图在一天中的特定时间复制货币对的当前即期汇率并将其粘贴到列中的另一张表中。然后对于下一个时间步骤,我希望新的即期汇率复制粘贴到下一行的该列,依此类推。 我现在遇到的问题是,如果我选择一个时间,例如09:00 我可以复制粘贴即期汇率,但明天在同一时间 09:00 我的代码将返回第一个单元格并覆盖该值。这是我不想要的。我想继续粘贴在下一个单元格中。我附上了我的代码,这样你就可以看到我的问题。它从我定义 i = 1 的地方开始。
Sub Macro1()
'
' Macro1 Macro
alertTime = Now + TimeValue("00:00:05") 'hh:mm:ss
Application.OnTime alertTime, "Macro1"
Dim LTime1 As Date, LTime2 As Date
Dim i As Integer, j As Integer
Dim USDJPY As Worksheet, EURUSD As Worksheet, Allrates As Worksheet
Dim LastRow As Long
With Range("P17")
.Value = Date
.NumberFormat = "dd/mm/yy"
End With
Set Allrates = Sheets("Allrates")
Set EURUSD = Sheets("EURUSD")
Set EURGBP = Sheets("EURGBP")
LTime1 = TimeValue("09:00:00")
LTime2 = TimeValue("12:00:00")
i = 1
If Range("P20") = LTime1 Then
Allrates.Range("B18").Copy EURGBP.Cells(i, 1)
End If
i = i + 1
If Range("P20") = LTime2 Then
Allrates.Range("B18").Copy EURGBP.Cells(i, 1)
End If
ActiveWorkbook.RefreshAll
End Sub
【问题讨论】:
标签: vba loops if-statement timer