Вставьте ссылку на внешнюю книгу (выбранную пользователем) в формулу с использованием VBA - PullRequest
1 голос
/ 10 февраля 2020

Мне нужно вставить формулу в ячейку (скажем, A1), которая ссылается на некоторые ячейки из другой книги (скажем, сумма (A1: A3)). Я не знаю ни пути, ни названия рабочей книги, поэтому мне нужно спросить пользователя (отредактировать. Я знаю имя листа "Foglio1"), я делаю это так:

Sub open_workbook_dialog()
Dim my_FileName As Variant

my_FileName = Application.GetOpenFilename(FileFilter:="Excel Files,*.xl*;*.xm*")

End Sub

Как мне вставить "my_Filename" в формулу?

1 Ответ

1 голос
/ 10 февраля 2020

Извините, но: вы не можете, потому что вам не хватает одной очень важной информации: таблицы (-имя), на которую должна ссылаться ваша формула.

edit: OK, если у вас есть Исправив имя рабочего листа, вы можете сделать следующее: Добавить функцию для форматирования вашего my_FileName с необходимым окружением для формулы:

Private Function Formula_prefix(ByVal Filepath As String, ByVal WsName As String) As String
Dim Path As String, Filename As String, Idx As Long
    Idx = InStrRev(Filepath, "\")
    If Idx > 0 Then Path = Left(Filepath, Idx)
    Filename = Mid(Filepath, Idx + 1)

    Formula_prefix = "'" & Path & "[" & Filename & "]" & WsName & "'!"
End Function

, затем вы можете поместить свою формулу в свой лист с помощью следующего кода:

ThisWorkbook.Worksheets(1).Range("B2").Formula = "=SUM(" & Formula_prefix(my_FileName, "Foglio1") & "A1:A3)"

Возможно, есть более элегантный способ, но он должен работать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...