Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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
Excel VBA如果公式不起作用?_Excel_Vba_If Statement_Formula - Fatal编程技术网

Excel VBA如果公式不起作用?

Excel VBA如果公式不起作用?,excel,vba,if-statement,formula,Excel,Vba,If Statement,Formula,我有一些VBA代码,在几个工作簿之间工作 我遇到了一个问题,如果这个公式适用,我就无法得到它。 我不确定如何得到下标超出范围的错误 我曾尝试使用.RangeO、.RangeO:O、.RangeO,但都给出了相同的1004错误 我用的范围不对吗?我能够在不同的配方上使用range,所以不确定为什么这不起作用 Sub if_after() Dim co_detail As Workbook Set co_detail = ThisWorkbook With co_

我有一些VBA代码,在几个工作簿之间工作

我遇到了一个问题,如果这个公式适用,我就无法得到它。 我不确定如何得到下标超出范围的错误

我曾尝试使用.RangeO、.RangeO:O、.RangeO,但都给出了相同的1004错误

我用的范围不对吗?我能够在不同的配方上使用range,所以不确定为什么这不起作用

Sub if_after()

    Dim co_detail As Workbook
    Set co_detail = ThisWorkbook

        With co_detail.Sheets("Detail")

            For i = 2 To 100
                .Range("O2").Formula = "=IF(L" & i & "=N" & i & ",'good','update')"
            Next i

        End With

End Sub

这是一个零,不是一个哦,全引号用于文本。引号还必须在带引号的字符串中加倍

.Range("o" & i).Formula = "=IF(L" & i & "=N" & i & ", ""good"", ""update"")"

这是一个零,不是一个哦,全引号用于文本。引号还必须在带引号的字符串中加倍

.Range("o" & i).Formula = "=IF(L" & i & "=N" & i & ", ""good"", ""update"")"

您可以将整个代码简化为以下内容-根本不需要循环,只需调整大小即可:


您可以将整个代码简化为以下内容-根本不需要循环,只需调整大小即可:


不要使用.Rangeo&i.Formula=…尝试使用.Rangeo&i.FormulaR1C1…。我总是使用公式1c1而不是公式。

而不是使用.Rangeo&I.Formula=…尝试使用.Rangeo&I.FormulaR1C1…。我总是用公式1c1代替公式。

Range2可能应该是Range2字母“O”而不是azero@cybernetic.nomad这只是这里的一种类型。谢谢你指出这一点。我的原始代码使用O.Range2,可能应该是Range2字母“O”,而不是azero@cybernetic.nomad这只是这里的一种类型。谢谢你指出这一点。我的原始代码使用O。我问题中的0是一个打字错误。对不起。看来我对单引号的看法是错的。感谢您对此进行的修复。我实际上在我的一个公式中使用了一些单引号,它正在工作,但是我不认为它被用作引号,而是文件路径的一部分。是的,类似于带有一个或多个空格的工作表名的内容必须用单引号括起来。我问题中的0是一个打字错误。对不起。看来我对单引号的看法是错的。谢谢你的修复。我实际上在我的一个公式中使用了一些单引号,它正在工作,但是我不认为它被用作引号,而是文件路径的一部分。是的,像工作表名称这样有一个或多个空格的东西必须用单引号括起来。我在阅读FormulaR1C1,但我看不到任何明显的优点。像C3这样的xlA1引用在xlR1C1中会被误解为C:C。@Jeeped,谢谢你的提示。我会记住这一点。我在阅读公式1C1,但我没有看到任何明显的优势。像C3这样的xlA1参考在xlR1C1中会被误解为C:C。@Jeeped,谢谢你的提示。我会记住这一点的。是的,谢谢你,我已经做过了。一旦我找到了For循环,我就可以回到另一种不用循环的方式。是的,谢谢你,我已经做过了。一旦我找到For循环,我就可以回到另一种不使用循环的方式。