VBA Excel: ошибка компиляции: синтаксическая ошибка

#vba #excel

#vba #excel

Вопрос:

 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
  

Ошибка находится в строке, указанной ниже, и вызвана «Operational», я полагаю, потому что она видит «и пытается закончить там, как мне сделать так, чтобы она принимала «operational» буквально как есть и продолжалась мимо нее?

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

Комментарии:

1. Вы действительно пытаетесь установить .Value для этих строк, или вы пытаетесь установить .Formula для этого?

Ответ №1:

Вы можете либо удвоить кавычки, либо

 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))"