我的IF/ELSE IF语句在VBA中不起作用 [英] My IF/ELSE IF Statement is not working in VBA

查看:378
本文介绍了我的IF/ELSE IF语句在VBA中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法在代码中实现以下if语句:

I am having trouble implementing the following if statement into my code:

IF(O3<0,"Y",N")

有人可以帮助更改我的代码以包含此if语句吗?这是我尝试过的:

Can someone help alter my code to include this if statement? Here is what I've tried:

  If Range("O3:O4183") < 0 Then Range("P3").Value = "Y"
    Worksheets("Sample File").Range("P3:P4183").FillDown

    ElseIf Range("O3:O4183") > 0 Then Range("P3").Value = "N"
            Worksheets("Sample File").Range("P3:P4183").FillDown

            End If

完整代码:

Sub stackoverflow()

Dim rng As Range

''sample file creation
''values

        Range("A3").Value = "CSH"   ''hardcode
        Worksheets("Sample File").Range("A3:A4183").FillDown

        Set rng = Worksheets("File").Range("C2:C4182")
        Worksheets("Sample File").Range("B3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

                Set rng = Worksheets("File").Range("D2:D4182")
        Worksheets("Sample File").Range("C3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

         Range("D3").Value = "1"   ''hardcode
        Worksheets("Sample File").Range("D3:D4183").FillDown

                Set rng = Worksheets("File").Range("E2:E4182")
        Worksheets("Sample File").Range("E3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

                Set rng = Worksheets("File").Range("E2:E4182")
        Worksheets("Sample File").Range("F3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

         Range("G3").Value = "USD"   ''hardcode
        Worksheets("Sample File").Range("G3:G4183").FillDown

              Set rng = Worksheets("File").Range("K2:K4182")
        Worksheets("Sample File").Range("H3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

                      Set rng = Worksheets("File").Range("F2:F4182")
        Worksheets("Sample File").Range("I3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

         Range("J3").Value = "DEALT"   ''hardcode
        Worksheets("Sample File").Range("J3:J4183").FillDown

                      Set rng = Worksheets("File").Range("H2:H4182")
        Worksheets("Sample File").Range("M3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

         Range("N3").Value = "0"   ''hardcode
        Worksheets("Sample File").Range("N3:N4183").FillDown

                     Set rng = Worksheets("File").Range("J2:J4182")
        Worksheets("Sample File").Range("O3").Resize(rng.Rows.Count, rng.Columns.Count).Cells.Value = rng.Cells.Value

        ''If statement:  IF(O3<0,"Y",N")

End Sub

推荐答案

尝试一下

Option Explicit
'

Sub stackoverflow()

    Dim src As Range
    Set src = Worksheets("File").Range("2:4182")

    Dim dst As Range
    Set dst = Worksheets("Sample File").Range("3:4183")

    ' sample file creation
    ' values

    dst.Columns("A") = "CSH"   ' hardcode
    dst.Columns("D") = "1"
    dst.Columns("G") = "USD"
    dst.Columns("J") = "DEALT"
    dst.Columns("N") = "0"

    dst.Columns("B") = src.Columns("C").Value
    dst.Columns("C") = src.Columns("D").Value
    dst.Columns("E") = src.Columns("E").Value
    dst.Columns("F") = src.Columns("E").Value
    dst.Columns("H") = src.Columns("K").Value
    dst.Columns("I") = src.Columns("F").Value
    dst.Columns("M") = src.Columns("H").Value
    dst.Columns("O") = src.Columns("J").Value

    dst.Columns("P") = "=IF(RC[-1]<0,""Y"",""N"")"

End Sub

这篇关于我的IF/ELSE IF语句在VBA中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆