1

Ситуация:
У меня есть три книги Excel, из которых Workbook1 и Workbook2 содержат мои данные. В Workbook3 есть VLOOKUP который ссылается на данные в Workbook1 и Workbook2 . Все это прекрасно работает.

Проблема:
Когда я сохраняю и закрываю все книги и снова открываю только Workbook3 , ячейки, содержащие VLOOKUP будут показывать только #NV пока я не открою Workbook1 и Workbook2 .

Вопрос:
Можно ли избежать открытия листа с данными каждый раз, когда я открываю справочный лист? Если да, как мне этого добиться?

Решение:
Упомянутые рабочие листы использовали старый формат .xls . Кажется, старые книги нужно открывать. После сохранения их как .xlsx проблема больше не существовала.

2 ответа2

1

Для доступа к данным из указанной рабочей книги с помощью VLOOKUP необходимо открыть указанную рабочую книгу. Так что нет, также невозможно избежать открытия всех ссылочных листов. не требует открытия рабочих книг, если они сохранены в формате .xlsx . Однако, если книги используют старый формат .xls , их необходимо открыть.

В качестве альтернативы можно импортировать данные из закрытой рабочей книги в другую рабочую книгу с использованием VBA . VLOOKUP тогда возможен для импортированных данных.

Другой способ использования VBA - автоматически открывать все ссылочные листы при запуске, обновлять все ссылки и снова закрывать указанные книги, используя следующий код.

Private Sub Workbook_Open()
Dim Links
Dim i%
Links = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(Links) Then
    For i = 1 To UBound(Links)
      Workbooks.Open Links(i), 0
    Next i
Else
End If
ActiveWorkbook.RefreshAll
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
    w.Close savechanges:=False
End If
Next w
End Sub
0

Перейдите в Data > Connections > Edit Links > Update Values . Это даст вам текущие значения из рабочей книги, не открывая ее. Вы также можете настроить автоматическое обновление ссылок, хотя это приведет к замедлению открытия при наличии большого количества ссылок. Этот метод работает только в том случае, если связаны файлы .xlsx, а не .xls.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .