使用VBA将公式插入Excel时出现预期的语句结束错误

使用VBA将公式插入Excel时出现预期的语句结束错误,excel,vba,Excel,Vba,下面的代码显示了预期的语句结束错误。调试器将突出显示句号/句点,但这是公式的一部分 有人能看到这个问题吗 Sub ParseSurnames() Dim lastRow As Long 'Where is last row of data? lastRow = Cells(Rows.Count, "A").End(xlUp).Row 'Apply formula Range("C1:C" &

下面的代码显示了预期的语句结束错误。调试器将突出显示句号/句点,但这是公式的一部分

有人能看到这个问题吗

Sub ParseSurnames()
    Dim lastRow As Long
   
    'Where is last row of data?
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
   
    'Apply formula
    Range("C1:C" & lastRow).Formula = "=IF(A1="","",LEFT(A1,FIND(".",A1)-3))"

End Sub

尝试更改代码行,将公式应用于:

Range("C1:C" & lastRow).Formula = "=IF(A1="""","""",LEFT(A1,FIND(""."",A1)-3))"
在包含“”的字符串中,必须使用另一个双引号对双引号进行转义。我的意思是“”表示“”,而“”表示“

要检查这些字符串,请尝试下一代码行:

Debug.Print "=IF(A1="""","""",LEFT(A1,FIND(""."",A1)-3))"

它是否在即时窗口(Ctrl+G,在VBE中)中返回您需要的公式?如果是,这就是方法…

尝试更改代码行,将公式应用于:

Range("C1:C" & lastRow).Formula = "=IF(A1="""","""",LEFT(A1,FIND(""."",A1)-3))"
在包含“”的字符串中,必须使用另一个双引号对双引号进行转义。我的意思是“”表示“”,而“”表示“

要检查这些字符串,请尝试下一代码行:

Debug.Print "=IF(A1="""","""",LEFT(A1,FIND(""."",A1)-3))"

它是否在即时窗口(Ctrl+G,在VBE中)中返回您需要的公式?如果是,这就是方法…

您需要将公式字符串本身内的任何引号加倍:
范围(“C1:C”和lastRow)。公式=“=If(A1=“”,“”“”,LEFT(A1,FIND(“”,A1)-3”)
您需要将公式字符串本身内的任何引号加倍:
范围(“C1:C”和lastRow)。公式=“=If(A1=“”,“”,LEFT(A1,FIND(“,A1)-3))”
已排序。谢谢你,泰德。谢谢各位