Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA中使用链接IF语句动态填充范围?_Vba_Excel - Fatal编程技术网

在VBA中使用链接IF语句动态填充范围?

在VBA中使用链接IF语句动态填充范围?,vba,excel,Vba,Excel,我正在自动化一个工作簿,该工作簿跨4个工作表使用链接IF语句(非VBA)生成一个输出文件以供上传 下面是给出上下文的快速代码摘要: 创建新工作表并从数组中填充第一行(works) 使用数组中的IF公式填充第二行 用上面使用的动态IF函数填充表的其余部分(虽然似乎很简单,但仍然有效) [更新代码如下] 我希望实现的结果是,数组使用正确的IF语句填充所有行,然后该范围完成相关单元格的动态填充 我收到的错误是 “1004:应用程序定义或对象定义错误” 而.Cells(2,1+i).Formula=Te

我正在自动化一个工作簿,该工作簿跨4个工作表使用链接IF语句(非VBA)生成一个输出文件以供上传

下面是给出上下文的快速代码摘要:

  • 创建新工作表并从数组中填充第一行(works)

  • 使用数组中的IF公式填充第二行

  • 用上面使用的动态IF函数填充表的其余部分(虽然似乎很简单,但仍然有效)

  • [更新代码如下] 我希望实现的结果是,数组使用正确的IF语句填充所有行,然后该范围完成相关单元格的动态填充

    我收到的错误是

    “1004:应用程序定义或对象定义错误”


    .Cells(2,1+i).Formula=TestFormulas(i)
    这一行高亮显示为黄色。

    您说您已经调整了引号,但您已经将它们更改为单引号,而不是将它们保留为双引号

    公式应该这样调整

    =If 'Sheet1'!P2 = ""Redundant"" Then ...
    
    请注意双引号的加倍

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

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

    您使用的“公式”不是可行的工作表公式。工作表公式不使用IF/THEN/ELSE措辞。并且
    范围(“A2:BN74”)。公式=“=A2”
    将用循环引用填充这些单元格。您是否直接在Excel单元格中编写了工作IF公式?如果是这样,请将该公式复制粘贴到代码中,并调整引号。如果没有,您将需要学习编写一个有效的If公式。正如@ScottCraner已经指出的,你现在拥有的东西是无效的。@tigeravatar在意识到这个问题之前,我复制/粘贴了它,并调整了它的引号。我已经更新了代码并填充了它,虽然不是作为一个公式。下面是一个数组现在的外观示例(使用简单代码查看是否无法工作):Dim cell As Range TestFormulas()=array(“if cell.Value 1 Then cell.Value=2 Else cell.Value=4”)@ScottCraner if函数现在在数组外部工作,但由于某种原因,它在数组内部不工作。即使将循环设置为.Cells(2,1+i).Formula=TestFormulas(i),也会将字符串传递给相应的单元格。
    =IF('Sheet1'!P2 = ""Redundant"","""",IF(...