Заставить Excel сохранять имя листа при обращении к внешним таблицам - PullRequest
2 голосов
/ 21 февраля 2020

Есть ли способ заставить Excel автоматически "переписать" адрес внешней ссылки?

Пример

Когда я наведу курсор мыши и выберу таблицу в другая книга в качестве источника, строка формул показывает это:

=[WorbookName.xlsx]SheetName!TblName

Как только я нажимаю клавишу ввода, панель формул показывает это:

=WorbookName.xlsx!TblName [#Data]

Скобки и имена листов удаляются и [# Данные] добавляются.

Я подтвердил, что Excel понимает адрес с именем листа, используя косвенную и заставляя Excel использовать полную ссылку

=INDIRECT([WorbookName.xlsx]SheetName!TblName)

Так что Excel не является ограничением. Однако это только доказало, что Excel справляется с этим стилем ссылок. Проблема заключается в том, что когда вы используете косвенный метод, вы фактически не создаете «ссылку» на исходный файл, ваша рабочая книга никогда не будет запрашивать обновление значений, если исходный файл закрыт.


Мне нужно заставить Excel сохранить имя таблицы в справочнике, потому что я буду загружать в OneDrive и совместно писать книгу. Когда вы ссылаетесь на таблицу в другой книге, и эта книга закрывается, ссылка изменяется, чтобы включить веб-адрес вашего OneDrive, например:

source file open:   =WorbookName.xlsx!TblName [#Data]
source file closed: =https://d.docs.live.net/location/FileName.xlsx'!TableName

Я считаю, что это вызывает ошибки, мешая Excel обновлять ценности. когда я впервые открываю книгу, содержащую ссылки, она пытается обновить данные до последних. Когда я использую обычные диапазоны, это не имеет проблем. Когда я использую таблицы, я получаю «мы не можем обновить некоторые ссылки в вашей книге прямо сейчас». Если вы go редактируете ссылки, это выглядит так: Редактировать ссылку enter image description here

Если вы попытаетесь обновить значения, вам будет показано это , Обратите внимание, что он ищет рабочую таблицу, но имя, которое он ожидает, на самом деле является именем рабочей книги. Выбрать лист

enter image description here

Я полагаю, это потому, что когда вы ссылаетесь на диапазон, адрес записывается так:

Rance referance =https ://d.docs.live.net/Loacation/[FileName.xlsx]SheetName!$A$1:$D$20
table referance =https ://d.docs.live.net/location/FileName.xlsx'!TableName

Обратите внимание, что в восклицательном знаке есть разница! точка. Я полагаю, что именно по этой причине Excel отображает имя книги в том виде, в каком она ищет. Опять же, если вы используете косвенный, вы можете заставить Excel использовать «длинный» адрес, поэтому мы знаем, что Excel распознает его без проблем.

Очень надеюсь найти решение, заранее спасибо!

1 Ответ

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

Это альтернатива тому, что вы пытаетесь сделать.

Я провел несколько тестов, и если файл сохранен в OneDrive, вы можете открыть его (из OneDrive не локально) и просто обновить sh данные с помощью PowerQuery.

Шаги для создания запроса:

В Chrome:

  1. Найти исходный файл в Onedrive (он же: https://onedrive.live.com/)
  2. В Google Chrome, загрузите файл (нам нужно получить ссылку для загрузки на следующем шаге)
  3. Нажмите elipsis в правом верхнем углу Chrome и нажмите «Загрузки» (или нажмите Ctrl + J)
  4. Щелкните правой кнопкой мыши ссылку на загруженный файл и выберите «Копировать»

В Excel ...

Нажмите Данные | Получить данные | Из других источников | Из Интернета (сейчас у меня нет версии engli sh, но вы должны ее найти) Вставить URL Нажмите Ok Выбрать Лист / Таблица (выполните любое преобразование, которое вам может потребоваться) Нажмите Закрыть и загрузить в ... Выберите лист или любое место Нажмите ОК

Теперь сделайте любую формулировку для этой таблицы

Как уже говорилось, я провел несколько тестов с файлом, открытым в другом экземпляре и затем обновляющим таблицу, и это сработало.

Позвольте мне знать, если ваш.


РЕДАКТИРОВАТЬ:

Согласно вашим комментариям (хотя я не проверял это) я провел некоторые исследования о том, как сделать эта работа со стандартными ссылками для обмена.

Вот шаги:

В Chrome:

  1. Найдите и выберите исходный файл в Onedrive (он же: https://onedrive.live.com/)
  2. Нажмите Share и создайте ссылку для просмотра / редактирования
  3. Скопируйте эту ссылку

На эту дату Ссылка плеча выглядело бы примерно так:

https://1drv.ms/x/s!ArAKssDW3T7wnIIEvmhHrMxfvhowww?e=UsaATm 

Ключевым моментом здесь является замена ms на ws, поэтому ссылка, которую вам нужно использовать в Excel, должна выглядеть примерно так:

https://1drv.ws/x/s!ArAKssDW3T7wnIIEvmhHrMxfvhowww?e=UsaATm 

В Excel:

  1. Нажмите Данные | Получить данные | Из других источников | Из Интернета (сейчас у меня нет версии engli sh, но вы должны найти ее)
  2. Вставьте URL
  3. Нажмите OK
  4. Righ щелкните значок с надписью 1dr.ws
  5. Выберите и нажмите Excel
  6. Продолжите другие преобразования
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...