Excel中有macros的语法错误

macros代码中的语法错误。 下面的macros代码:

Sub concatnate() ' ' concatnate Macro ' ' Keyboard Shortcut: Ctrl+t ' ActiveCell.FormulaR1C1 = _ "=CONCATENATE("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""& _ "","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","")" Range("C1").Select Selection.Copy Range("C3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells.Replace What:=",,", Replacement:="", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End Sub 

这很简单,真的。

你不能把一双双引号放在双引号内。

您需要用双引号replace所有这些内部引号

 ActiveCell.FormulaR1C1 = _ "=CONCATENATE("""","""")" 

根据评论,这个答案已被纠正。

看起来,VBE正在弄糊涂,试图理解所有这些逗号。 它可以被纠正为,

 ActiveCell.FormulaR1C1 = _ "=CONCATENATE("","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""," & _ ""","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","")" 

如果你想要的只是99个逗号,那么以下可能会更好。

 ActiveCell.FormulaR1C1 = "=REPT(CHAR(44), 99)"