Формула ячейки для использования другого листа с sheet.name - PullRequest
0 голосов
/ 25 апреля 2020

Я борюсь с кодированием формулы ячейки, чтобы использовать другой лист, но получаю имя листа, используя sheet.name:

Set sht = Activesheet
 Sh_name = sht.Name
 Range("C4").Formula = _
   "=SUMIF(""'"" & Sh_name &""'!$D:$D"",'Trial balance'!B4,""'"" & Sh_name &""'!$G:$G"")"

это то, что я сделал, но это не работает ...

есть идеи, почему?

спасибо

Ответы [ 2 ]

1 голос
/ 25 апреля 2020
Set sht = ActiveSheet
Sh_name = sht.Name
Range("C4").Formula = "=SUMIF('" & Sh_name & "'!$D:$D,'Trial balance'!B4,'" & Sh_name & "'!$G:$G)"

Почему? Давайте иметь жестко закодированное имя листа, например «Sheet1». Наш код будет выглядеть следующим образом:

Range("C4").Formula = "=SUMIF('Sheet1'!$D:$D,'Trial balance'!B4,'Sheet1'!$G:$G)"

И теперь мы будем использовать «Лист1» в качестве жестко закодированного имени листа, но объединяя фиксированную структуру формулы с именем листа.

Range("C4").Formula = "=SUMIF('" & "Sheet1" & "'!$D:$D,'Trial balance'!B4,'" & "Sheet1" & "'!$G:$G)"

Чтобы объединить строки, вы должны написать список строк, разделив их амперсандом '&'. Строка может быть текстом между кавычками или именем переменной. Последний шаг - заменить строки «Sheet1» именем переменной, например, Sh_name:

Sh_name = "Sheet1"
Range("C4").Formula = "=SUMIF('" & Sh_name & "'!$D:$D,'Trial balance'!B4,'" & Sh_name & "'!$G:$G)"

Ваш ожидаемый результат:

Set sht = ActiveSheet
Sh_name = sht.Name
Range("C4").Formula = "=SUMIF('" & Sh_name & "'!$D:$D,'Trial balance'!B4,'" & Sh_name & "'!$G:$G)"
0 голосов
/ 25 апреля 2020
Range("C4").Formula = _
 "=SUMIF('" & Sh_name & "'!$D:$D,'Trial balance'!B4, '" & Sh_name & "'!$G:$G)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...