Страницы: 1
RSS
Подтянуть данные формулой SUMIFS из другой книги через ВБА
 
Здравствуйте, друзья!

Подскажите, пожалуйста!

Я через ВБА макросом вношу простую формулу в ячейку. Но, формула ссылается на другую закрытую книгу. Открывать ее желания нет совсем.
В одном файле когда через ВБА вношу формулу ВПР в ячейку, также ссылаясь на закрытую книгу - без всяких проблем получаю нужный результат.
Однако, в другом файле использую SUMIFS по той же логике, и вместо данные получаю #VALUE!. Только если открыть книгу, тогда появляются данные.
Не могу почему ВПР не требует открытия книги для отражения данных, а SUMIFS требует. Что делаю не так?

Код
Range("E2").Formula = "=IFERROR(VLOOKUP(D2,'X:\[EXAMPLE1.xlsx]Sheet1'!$A$1:$B$1000,2,0),""xxx"")"   -   работает
 Range("J3").Formula = "=SUMIFS('X:\[EXAMPLE2.xlsx]MAIN'!$D:$D,'X:\[EXAMPLE2.xlsx]MAIN'!$A:$A,F3,'X:\[EXAMPLE2.xlsx]MAIN'!$C:$C,"">=""&C3,'X:\[EXAMPLE2.xlsx]MAIN'!$B:$B,""<=""&C3)"    -    не работает

Заранее всем спасибо!

 
ну добавь открыть книгу, и сделать ее в фоновый режим  
 
А что, SUMIFS вставленная без макроса, работает?
 
RAN, а как можно вручную прописать SUMIFS функцию, не открывая, при этом книгу на которую ссылаешься? Мое главное условие не открывать книгу. Соответственно, без макроса прописанная формула работает, т.к. ты в любом случае открываешь книгу на которую ссылаешься. Мне же нужен вариант, чтобы не трогать эту бедную книгу, поэтому и вношу формулу через Макрос, ну одна из причин.  
Изменено: Paul Zealand - 05.01.2019 11:03:24
 
Cratas.Thymos, чисто теоретически думал об этом, мол открыть книгу, потом в основной книге после того как значения подтянуться заменить их на значения, а потом уже можно и закрыть ее. А как в коде это сделать? ну в смысле открыть книгу в фоне, а потому закрыть, не подскажите?

З.Ы. хотя все равно не иделаьный вариант. Все таки мне просто любопытно почему 1 функция работает нормально, а другая нет? в чем суть?
 
Поиск рулит
Суммесли закрытая книга
Получить данные из закрытой книги
Ну, и, напоследок, вариант со вставкой ВПР в закрытую книгу - самый медленный способ получить данные
 
RAN, перед созданием темы, конечно, же пользовался поиском. Много разной инфы на схожую тему нашел, но именно моей ситуации не обнаружил, или предложенные решения не подошли. Одну тему нашел, но ТС так и не выложил финальное решение. А про ВПР там всего-то ссылка на мейл нужна, чтоб атоматом письма рассылать, сотую доли секунды работает макрос, так что меня вполне устраивает. В любом случае спасибо Вам за советы. В итоге решил задачу открытием книги в фоне и последующем закрытии после замены формулы на значения. Если кому интересно решение ниже.
Код
Dim wb As Workbook
Set wb = Workbooks.Open("X:\TEST.xlsx")
wb.Windows(1).Visible = False

Do what you need then

Workbooks("TEST.xlsx").Close SaveChanges:=False
Изменено: Paul Zealand - 05.01.2019 11:46:53
Страницы: 1
Наверх