2016-10-04 103 views
0
Sub LoopCertain() 'Excel VBA to loop through only include sheets (1-3) 

Dim sh As Worksheet 

For Each sh In ActiveWorkbook.Worksheets ' Start of the VBA loop 
    Select Case sh.Name 
    Case Is = "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "D11", "D12", "D13", "D13", "D14", "D15", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31" 
    sh.[D15].Value = "=(4-(D16+D17+D18+D19))+(SUMIF(J27:J38,"Operational",N27:N38))" 
    sh.[D21].Value = "=4-(SUM(D16:D20))" 
    sh.[D23].Value = "=D15/4" 
    End Select 
Next sh 

End Sub 

的错误是在下面列出的线,并通过“操作”造成的,我想是因为它看到了“,并试图结束那里,我怎么做它,所以它以 “经营” 字面上是并继续过去呢?VBA的Excel:编译错误:语法错误

sh.[D15].Value = "=(4-(D16+D17+D18+D19))+(SUMIF(J27:J38,"Operational",N27:N38))" 
+0

你真的想把'.Value'设置为这些字符串,还是你想要设置'.Formula'? – YowE3K

回答

0

您可以双引号或

sh.[D15].Value = "=(4-(D16+D17+D18+D19))+(SUMIF(J27:J38,""Operational"",N27:N38))" 

使用CHR(34)

sh.[D15].Value = "=(4-(D16+D17+D18+D19))+(SUMIF(J27:J38," + CHR(34) + "Operational" + CHR(34)",N27:N38))"