我开始使用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
答案 0 :(得分:0)
EURGBP.Cells(i, 1)
必须为EURGBP.Cells(EURGBP.RANGE("A10000").End(xlUp).Row+1, 1)