Переменные внутри формул с кавычками

Я пытаюсь вставить две переменные в формулу. Хотя они появляются внутри цитат.

fase1 = Cells(2, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) prod1 = Cells(4, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) 

Fase1 относится к AG2 и Prod1 к AG4.

 Range("B3").Formula = "=SUM((SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase, " & fase1 & ",ben_linha," & prod1 & ")) 

Это часть формулы. «& fase 1 &» дает мне «AG2», а «& prod 1 &» возвращает «AG4». Да, они оба внутри кавычек внутри формулы, как показано на рисунке:

введите описание изображения здесь

Я хочу удалить эти одинарные кавычки, потому что таким образом формула не относится к этим ячейкам.

Полная часть кода этой команды

 'Prints an array of dates Dim startac2 As Long, finishac2 As Long Dim datearray3 As Variant, y As Long finishac2 = CLng(DateValue(lastac)) startac2 = CLng(DateValue(firstac)) ReDim datearray3(finishac2 - startac2 + 1) For y = 0 To finishac2 - startac2 datearray3(y) = startac2 + y Next diffdate_ac = DateDiff("d", startac2, finishac2) + 1 wsPBen.Activate Range(Cells(2, 2), Cells(2, diffdate_ac + 1)).Value = datearray3 Range(Cells(2, 2), Cells(2, diffdate_ac + 1)).NumberFormat = "d/m;@" ' Range("A1").Value = "BENEFICIAMENTO: TINTURARIA LISO" Range("A2").Value = "Data" Range("A3").Value = "Produção" Cells(2, diffdate_ac + 2).Value = "TOTAL" Cells(2, diffdate_ac + 3).Value = "FASE" Cells(4, diffdate_ac + 3).Value = "PRODUTO" Cells(2, diffdate_ac + 4).Value = "TINGIR ALTA TEMP." Cells(3, diffdate_ac + 4).Value = "TINGIR BAIXA TEMP." Cells(4, diffdate_ac + 4).Value = "TINTO RAMADO" Cells(5, diffdate_ac + 4).Value = "TINTO TUBULAR" Dim fase1 As String Dim fase2 As String Dim prod1 As String Dim prod2 As String fase1 = Cells(2, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) fase2 = Cells(3, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) prod1 = Cells(4, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) prod2 = Cells(5, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False) Range("B3").formula = "=SUM((SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase1 & ",ben_linha," & prod1 & ")),(SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase1 & ",ben_linha," & prod2 & ")),(SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase2 & ",ben_linha," & prod1 & ")),(SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase2 & ",ben_linha," & prod2 & ")))" 

Если я правильно прочитаю, эта строка VBA:

 Range("B3").Formula = "=SUM((SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase, " & fase1 & ",ben_linha," & prod1 & "))" 

Я пытаюсь установить это выражение формулы:

 =SUM((SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase, AG2,ben_linha,AG4)) 

Однако это смешивает адресацию R1C1 и A1 в той же формуле. Насколько я знаю, это всегда недопустимый синтаксис.

Ваш код выглядит хорошо для меня … Не могли бы вы начать новую книгу Excel, перейти к редактору VBA и вставить следующий код в новый модуль?

 Sub x() Dim cellAddress As String cellAddress = Cells(1, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False) Dim formula As String formula = "=SUMIFS(B1:B4,C1:C4," & cellAddress & ")" Call MsgBox(formula) Range("A2").formula = formula End Sub 

После этого запустите его и сообщите нам, появится ли подсказка в кавычках формулы и сообщите нам, что в ячейке A2 впоследствии.

Я бы просто заменил цитаты ничем:

 Range("B3").Formula = "=SUM((SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase1 & ",ben_linha," & prod1 & ")),(SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase1 & ",ben_linha," & prod2 & ")),(SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase2 & ",ben_linha," & prod1 & ")),(SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase," & fase2 & ",ben_linha," & prod2 & ")))" Range("B3").Formula = Replace(Range("B3").Formula, "'", "") 
Interesting Posts

Как отключить кнопку ленты в Excel, если конкретный рабочий лист существует с VBA

Excel назвал диапазоны для создания добавочных заголовков и подзаголовков

Как импортировать большую таблицу файлов excel в таблицу базы данных MySQL

Как скопировать ячейку с несколькими строками без нарушения строк?

Запланированная задача VBA и «Application.OnTime»

Получите максимальное значение столбцов в Excel с помощью макроса

Выполнение «db2look» в VB Excel – получение ошибки времени выполнения: обнаружен неожиданный «db2look»

Функция Excel «IF».

Попытка создания документа Excel с PHP (Fatal Error)

Условное форматирование – цветная шкала целая строка на основе одного столбца

Установить режим просмотра страницы в файле Excel с помощью apache poi

VBA: первый цикл перезаписи первого цикла

Тест утечки памяти Microsoft Interop с использованием монитора производительности

Подтверждение сохранения до закрытия рабочей книги

проверить, открыт ли файл в Python

Давайте будем гением компьютера.