将某些公式复制到工作表中的特定单元格

我正在尝试创build一个macros,将一些公式复制到工作表中的特定单元格。

当我创buildmacros时,标准公式工作正常,但是,当我尝试添加If_Then_Else语句时,在单元格内键入它时正常工作,我得到一个语法错误。 如果我采取了"失败前和失败后通过,错误消失,但公式不起作用。

编译错误:

语法错误。

这里是代码:

 Sub FillDown() Dim strFormulas(1 To 4) As Variant With ThisWorkbook.ActiveSheet.Name strFormulas(1) = "=DATE(YEAR(D2),MONTH(D2),DAY(D2))" strFormulas(2) = "=DATE(YEAR(E2),MONTH(E2),DAY(E2))" strFormulas(3) = "=NETWORKDAYS(G2,H2) - (1)" strFormulas(4) = "=IF(I2>1,"FAILED","Pass")" Range("G2:J2").Formula = strFormulas Range("G2:J20").FillDown End With End Sub 

数据:

 Starts COL D COL E COL F COL G COL H COL I COL J Trigger Date Acknowledged Date Acknowledged By 3/13/2015 17:37 3/16/2015 11:29 tech 3/13/2015 3/16/2015 2 Failed 3/10/2015 16:15 3/13/2015 16:28 tech 3/10/2015 3/13/2015 2 Failed 3/13/2015 6:32 3/13/2015 9:27 tech2 3/13/2015 3/13/2015 1 Pass 

这是我想解决的问题:

我有两个有date和时间戳的date。 我需要删除时间戳并确定第一个date和第二个date之间的networking日数。

所以我的想法是创build一个列,创build我给的date时间的“正式date”版本。 我这样做到这两个列,然后做一个networking日计算。 然后我想创build一个通过/失败的类别,我可以使用文本的条件格式。 (我不期待在这里的回应,我可以这样做)

尝试创build文本或将其复制到VBA中时,文本会出现问题。 我可以很容易地使用公式,如果我只是在单元格中input,然后突出显示和自动填充。

我觉得我只是缺less一些基本的东西。

你需要逃避你的报价。

更改:

 strFormulas(4) = "=IF(I2>1,"FAILED","Pass")" 

至:

 strFormulas(4) = "=IF(I2>1,""FAILED"",""Pass"")" 

粘贴到公式中时,加倍的引号""会翻译成单引号"

您可以在IDE(或在StackOverflow编辑器)中使用自动颜色编码作为提醒,忘记了这一点。