Превращение формулы запроса в рабочую формулу - PullRequest
1 голос
/ 04 апреля 2020

Мне нужно превратить динамическую формулу c, сделанную из запроса, в реальную, работающую формулу. Формула выглядит следующим образом:

=INDEX('C:\EXCHANGER\[FracReport.xlsb]ProppantAndFluid'!B57;1;1)

И несмотря на то, что она начинается с "=", она ничего не делает, пока я не нажму Ctrl + H, заменим "=" на "=". Решение VBA, которое я нашел до сих пор:

Dim a As String
Dim b As String
Dim c As String


Sheets("ProppantAndFluid").UsedRange.Replace What:="=", Replacement:="", LookAt:=xlPart
a = "="
b = ActiveSheet.Range("B10").Value
c = a & b

MsgBox c
ActiveSheet.Range("F10") = c

Хорошо, msgboxes c хорошо, но когда дело доходит до фактической конкатенации "=" и формулы и присвоения ее диапазону, он выбрасывает

Ошибка времени выполнения '1004': ошибка приложения или объекта

Любые решения для формул запроса или обходные пути для приложения, ошибки объекта, пожалуйста,

1 Ответ

0 голосов
/ 04 апреля 2020

Спасибо всем за вашу помощь и за то, что вы дали мне хороший путь для решения проблемы, конечный код, который делает формулу, сгенерированную запросом, такой:

Dim a As String
Dim b As String
Dim c As String


Sheets("ProppantAndFluid").UsedRange.Replace What:="=", Replacement:="", LookAt:=xlPart
Sheets("ProppantAndFluid").UsedRange.Replace What:=";", Replacement:=",", 
LookAt:=xlPart
a = "="
b = ActiveSheet.Range("B10").Value
c = a & b

ActiveSheet.Range("B10") = c
Range("B10").FormulaLocal = Range("B10").FormulaLocal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...