在VBA中使用链式IF语句动态填充Range?

时间:2017-12-06 17:21:11

标签: excel vba excel-vba

我正在自动化一个工作簿,该工作簿使用4个工作表中的链式IF语句(非VBA)来生成用于上载的输出文件。

以下是给出上下文的代码的快速概述:

  1. 创建新工作表并从数组填充第一行(作品)

  2. 使用数组

  3. 中的IF公式填充第二行
  4. 使用上面使用的动态IF函数填充表的其余部分(似乎工作虽然相当简陋)

  5. [更新后的代码]

    ruby your_ruby_file.rb
    

    我希望实现的结果是数组使用正确的IF语句填充所有行,然后Range完成相关单元格的动态填充。

    我收到的错误是

      

    '1004:应用程序定义或对象定义的错误'

    并且第Dim WS As Worksheet Dim cell As Range TestFormulas() = Array("=If 'Sheet1'!P2 = 'Redundant' Then cell.Value = '' ElseIf 'Sheet1'!P2 = 'Peripheral' Then cell.Value = '' Else cell.Value = 1") With WS For i = LBound(TestFormulas()) To UBound(TestFormulas()) .Cells(2, 1 + i).Formula = TestFormulas(i) Next i End With Range("A3:BN74").Formula = "=A2" 行突出显示为黄色。

1 个答案:

答案 0 :(得分:1)

您说您已针对报价进行了调整,但您已将其更改为单引号,而不是将它们保留为双引号

公式应该像这样调整....

=If 'Sheet1'!P2 = ""Redundant"" Then ...

请注意双引号加倍。

此外,Excel电子表格不了解vba代码,因此您的公式应如下所示:

=IF('Sheet1'!P2 = ""Redundant"","""",IF(...