Excel 列T中的单元格(同一行)也显示错误。我一直在思考如果iserror(buyrate)或iserror(selrate),那么else并继续上面的公式。沿着正确的路线-不幸的是,设置buyrate时出现错误-因此我们在设置值之前进行测试(直接引用范围)。。。

Excel 列T中的单元格(同一行)也显示错误。我一直在思考如果iserror(buyrate)或iserror(selrate),那么else并继续上面的公式。沿着正确的路线-不幸的是,设置buyrate时出现错误-因此我们在设置值之前进行测试(直接引用范围)。。。,excel,vba,Excel,Vba,列T中的单元格(同一行)也显示错误。我一直在思考如果iserror(buyrate)或iserror(selrate),那么else并继续上面的公式。沿着正确的路线-不幸的是,设置buyrate时出现错误-因此我们在设置值之前进行测试(直接引用范围)。。。我已经更新了代码…感谢到目前为止的帮助。事实上,我已经更改了原始的If标准,并且它以前是有效的。但是,当我包含您已经包含的新测试时,我会得到一个错误,“NEXT WITHOUT FOR”。我已经在我原来的帖子中更新了代码。非常感谢您的帮助 Se


列T中的单元格(同一行)也显示错误。我一直在思考
如果iserror(buyrate)或iserror(selrate),那么else
并继续上面的公式。沿着正确的路线-不幸的是,设置buyrate时出现错误-因此我们在设置值之前进行测试(直接引用范围)。。。我已经更新了代码…感谢到目前为止的帮助。事实上,我已经更改了原始的
If
标准,并且它以前是有效的。但是,当我包含您已经包含的新测试时,我会得到一个错误,“NEXT WITHOUT FOR”。我已经在我原来的帖子中更新了代码。非常感谢您的帮助
Set sht2 = Sheets("sheet2")
    last_row = sht2.Cells.Find(What:="*", After:=[A1], LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    For row_no = 2 To last_row
 If IsError(sht2.Range("R" & row_no)) Or IsError(sht2.Range("S" & row_no)) Then
    y = "#N/A"
   Else
   buyrate = sht2.Range("R" & row_no)
   selrate = sht2.Range("S" & row_no)
   buyccy = sht2.Range("E" & row_no)
   selccy = sht2.Range("G" & row_no)

    If buyrate >= selrate And buyccy = "USD" Then
            y = selrate
        ElseIf buyrate >= selrate And buyccy <> "USD" Then y = buyrate
        ElseIf buyrate < selrate And selccy = "USD" Then y = buyrate
        Else: y = selrate
    End If

sht2.Range("T" & row_no).Value = y
Next

Set sht2 = Nothing

End Sub
Sub Comparison()

 Dim sht2 As Worksheet
 Dim array_b()
 Dim last_row As Integer
 Dim row_no As Integer
 Dim buyccy As String
 Dim buyrate As String
 Dim selrate As String
 Dim y As String

 Set sht2 = Application.ActiveWorkbook.Sheets("Sheet1")

 'last_row = sht2.Range("A1").End(xlDown).Row
 last_row = sht2.Cells.Find(What:="*", After:=[A1], LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

 'ReDim array_b(row_no - 1, 3)

 For row_no = 2 To last_row
   If IsError(sht2.Range("R" & row_no)) Or IsError(sht2.Range("S" & row_no)) Then
     y = "#N/A"
   Else
     buyrate = sht2.Range("R" & row_no)
     selrate = sht2.Range("S" & row_no)
     buyccy = sht2.Range("E" & row_no)

     If buyrate >= selrate And buyccy <> "USD" Then y = buyrate Else y = selrate
   End If
   sht2.Range("T" & row_no).Value = y
 Next

 Set sht2 = Nothing

End Sub