Я использую две разные книги: первая [Только данные Excel], созданная как база данных, и вторая [Шаблон счета], созданная для создания счета.

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

=OFFSET('[Excel Data Only.xlsx]Channels'!$A$2,MATCH(Invoice!$C$1,'[Excel Data Only.xlsx]Channels'!$A$2:$A$198,0)-1,1,COUNTIF('[Excel Data Only.xlsx]Channels'!$A$2:$A$198,Invoice!$C$1),1)

И это работает правильно.

Проблема в том, что когда я хочу создать копию рабочей книги [Шаблон счета], которая будет иметь другой путь, например на рабочем столе, смещение изменяется на

=OFFSET('C:\Users\anthony\Desktop\[Excel Data Only.xlsx]Channels'!$A$2,MATCH(Invoice!$C$1,'C:\Users\anthony.boulos\Desktop\[Excel Data Only.xlsx]Channels'!$A$2:$A$198,0)-1,1,COUNTIF('C:\Users\anthony.boulos\Desktop\[Excel Data Only.xlsx]Channels'!$A$2:$A$198,Invoice!$C$1),1)

Таким образом, автоматически изменяется путь к книге [Excel Data Only], и он больше недоступен, поскольку я просто изменил путь к [Invoice Template], а не другой.

Итак, как я могу управлять этой формулой, чтобы она не влияла на путь [Только данные Excel] при изменении пути [Шаблон счета].

Спасибо за помощь!

2 ответа2

0

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

К сожалению, это может затормозить ситуацию, если вы переместите целевой файл (Invoice Template.xlsx в вашем примере) один.

Вероятно, самый быстрый способ исправить ситуацию - через диалог edit links который вы можете найти в Data -Ribbon. Там у вас есть таблица всех внешних файлов, и вы можете изменить, куда они указывают (change source). Когда вы исправите путь к Excel Data Only.xlsx , он должен обновить все ссылки на этот файл в вашей электронной таблице сразу.

0

Если вы столкнулись с проблемой огромного количества файлов, которые необходимо обновить в пакетном режиме (или вы просто хотите приключений, о, и не забудьте сначала сделать резервную копию!), Вы можете попробовать отредактировать необработанный файл *.xlsx , Это на самом деле почтовый архив.

Если вы откроете его с помощью обозревателя архивов (например, 7-zip ), вы найдете внешние ссылки в подкаталоге \xl\externalLinks\_rels\ . Вероятно, существует файл с именем externalLink1.xml.rels (число может отличаться). Это XML-файл, который содержит (относительный) путь и имя файла. Вы можете обновить его там. Он будет напечатан как .../externalLinkPath помечая его относительно местоположения вашего файла. Изменение этого типа на http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing также может решить проблему.

Ваш externalLink1.xml.rels может выглядеть так, что я не тестировал этот путь специально:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
      <Relationship 
          Id="rId1" 
          Type="http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing"
          Target="'C:\Users\anthony\Desktop\channels%20(BE%20VERY%20VERY%20PRECAUTIOUS%20WITH%20THIS%20FILE)!!!!\0000%20TEMPLATES\INVOICE%20template\New%20template\Excel%20Data%20Only.xlsx "
          TargetMode="External"
      />
 </Relationships>

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

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