#vba #loops #if-statement #timer
#vba #циклы #if-оператор #таймер
Вопрос:
Я начал программировать с помощью 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:
EURGBP.Cells(i, 1)
должно быть EURGBP.Cells(EURGBP.RANGE("A10000").End(xlUp).Row 1, 1)
Комментарии:
1. нет проблем, вы можете изменить 10000 на
EURGBP.Rows.Count
также2. ты имеешь в виду вот так? EURGBP. Ячейки (EURGBP.Строки. Count.End(xlUp). Строка 1, 1)
3. кроме того, «я», я в них больше не нуждаюсь, я думаю, я могу удалить их, верно? спасибо, приятель, за вашу помощь, вм оценил!!
4. Нет необходимости в i 🙂 Не проблема.