Я искал решение по всему этому сайту, но не смог найти решение, которое отвечало бы моим потребностям. Я опытный пользователь Excel, но начал изучать VBA и застрял на этой ошибке уже несколько дней.мне нужно умножить значение на валюту, и, поскольку у меня много валют, я подумал, что это был правильный способ сделать это (см. код ниже), но я получил эту ошибку, которую не могу решить, может ли кто-нибудь помочь мнес этим, пожалуйста?заранее спасибо.
Sub Update_Janeiro()
Dim lngLastRow As Long
Dim Cambio_Jan As Currency
If Cells(i, 251) = EUR Then
Cambio_Jan = 1
ElseIf Cells(i, 251) = USD Then
Cambio_Jan = 0.801228726
ElseIf Cells(i, 251) = GBP Then
Cambio_Jan = 1.1414211803
ElseIf Cells(i, 251) = CNY Then
Cambio_Jan = 0.1271895307
ElseIf Cells(i, 251) = NAIRAS Then
Cambio_Jan = 0.0016670478
ElseIf Cells(i, 251) = AUD Then
Cambio_Jan = 0.6431760061
ElseIf Cells(i, 251) = GHS Then
Cambio_Jan = 0.1778598686
ElseIf Cells(i, 251) = CZK Then
Cambio_Jan = 0.0397256232
ElseIf Cells(i, 251) = KES Then
Cambio_Jan = 0.0078621931
ElseIf Cells(i, 251) = ZAR Then
Cambio_Jan = 0.0676563785
ElseIf Cells(i, 251) = ZMK Then
Cambio_Jan = 0.0000829218
ElseIf Cells(i, 251) = TZS Then
Cambio_Jan = 0.0003555818
ElseIf Cells(i, 251) = SGD Then
Cambio_Jan = 0.6117066233
ElseIf Cells(i, 251) = UGX Then
Cambio_Jan = 0.000221247
ElseIf Cells(i, 251) = RON Then
Cambio_Jan = 0.2149924803
ElseIf Cells(i, 251) = RUB Then
Cambio_Jan = 0.0141866904
Else: Cambio_Jan = 0
End If
lngLastRow = Cells(Rows.Count, "IA").End(xlUp).Row
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For i = 3 To lngLastRow
Cells(i, 261).Value = Cells(i, 255) + Cells(i, 256)
Cells(i, 262).Value = Cells(i, 259) * Cambio_Jan
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
ОБНОВЛЕННЫЙ КОД
Option Explicit
Sub Update_Janeiro()
Dim lngLastRow As Long
Dim Cambio_Jan As Double
Dim i As Integer
i = i
If Cells(i, 251) = "EUR" Then
Cambio_Jan = 1
ElseIf Cells(i, 251) = "USD" Then
Cambio_Jan = 0.801228726
ElseIf Cells(i, 251) = "GBP" Then
Cambio_Jan = 1.1414211803
ElseIf Cells(i, 251) = "CNY" Then
Cambio_Jan = 0.1271895307
ElseIf Cells(i, 251) = "NAIRAS" Then
Cambio_Jan = 0.0016670478
ElseIf Cells(i, 251) = "AUD" Then
Cambio_Jan = 0.6431760061
ElseIf Cells(i, 251) = "GHS" Then
Cambio_Jan = 0.1778598686
ElseIf Cells(i, 251) = "CZK" Then
Cambio_Jan = 0.0397256232
ElseIf Cells(i, 251) = "KES" Then
Cambio_Jan = 0.0078621931
ElseIf Cells(i, 251) = "ZAR" Then
Cambio_Jan = 0.0676563785
ElseIf Cells(i, 251) = "ZMK" Then
Cambio_Jan = 0.0000829218
ElseIf Cells(i, 251) = "TZS" Then
Cambio_Jan = 0.0003555818
ElseIf Cells(i, 251) = "SGD" Then
Cambio_Jan = 0.6117066233
ElseIf Cells(i, 251) = "UGX" Then
Cambio_Jan = 0.000221247
ElseIf Cells(i, 251) = "RON" Then
Cambio_Jan = 0.2149924803
ElseIf Cells(i, 251) = "RUB" Then
Cambio_Jan = 0.0141866904
Else: Cambio_Jan = 0
End If
lngLastRow = Cells(Rows.Count, "IA").End(xlUp).Row
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For i = 3 To lngLastRow
Cells(i, 261).Value = Cells(i, 255) + Cells(i, 256)
Cells(i, 262).Value = Cells(i, 259) * Cambio_Jan
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub