VBA在循环中覆盖第一个单元格

时间:2016-10-14 07:38:37

标签: vba loops if-statement timer

我开始使用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

1 个答案:

答案 0 :(得分:0)

EURGBP.Cells(i, 1)必须为EURGBP.Cells(EURGBP.RANGE("A10000").End(xlUp).Row+1, 1)

相关问题