2016-10-04 61 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))"