Страницы: 1
RSS
Сбивка связи Excel и Word на 1 строку, При добавлении 1 строки в Excel произошла сбивка связей в Word
 
Здравствуйте!

Имеется Excel c расчётами. Числа из Excel переносились в Word как RTF (скопировал ячейку из excel, alt+ctrl+v в ворде - специальная вставка, alt+z - связать, затем "связать как текст в формате RTF").
Возникла необходимость добавить 1 строку в Excel, и из-за этого все числа в ворде так же сместились на 1 строку. Как это исправить? Не вручную же перебивать все поля в Word снова.

Word, Excel 2019 года.
Прилагаю фото.
Изменено: Елисей Мартьянов - 21.11.2021 11:09:28 (добавил технологию переноса данных из эксель в ворд)
 
Здравствуйте!
Наверное должно быть так
 
Да, так и должно быть.
Сбивка произошла по всему документу. Как убрать сбивку?

Добавленная ранее строка нужна.
 
Елис Мартьянов, Я так думаю, что Вы не поняли сарказм...
 
Елис Мартьянов, без файлов или хотя бы кода трудно что-то подсказать. Картинки красивые )))
Изменено: syt navy - 10.11.2021 14:39:13
 
Цитата
написал:
Как убрать сбивку?
Если Вы прочитаете ПРАВИЛА этого форума, особенно п.2.3, то поймете почему до сих пор не получили помощь. Если же у Вас нет особого желания углубляться в сие чтиво, то могу посоветовать пару графических программ, для редактирования Вашего приложенного фото
 
Спасибо за ваше замечание. Я не смог приложить файлы в виду ограничение на их вес (более 100 Кб). Приложенное фото, как мне кажется, описывает суть проблемы.
 
Пример тут особо не поможет,
Используйте дополнительный лист, туда поместите необходимые для ворда данные.
Формулами подтяните необходимые значения используя функции ВПР и другие и тогда у Вас ничего не будет сдвигаться.
Спасибо
 
Как мне кажется, что у вас проблема не в Excel. У вас, скорее всего есть некий "вордовский" шаблон, в котором расставлены закладки, в которые и вставляются данные. Поэтому скорее всего нужно редактировать именно шаблон. Но это не лишь моё предположение
Изменено: Msi2102 - 10.11.2021 16:18:29
 
Цитата
написал:
Используйте дополнительный лист, туда поместите необходимые для ворда данные.Формулами подтяните необходимые значения используя функции ВПР и другие и тогда у Вас ничего не будет сдвигаться.
Спасибо за ваш ответ. Неплохой вариант, но мне он не подойдёт. У меня есть калькулятор расчётов excel, из него значения подтягиваются в пояснительную записку word. Не буду же я каждый раз ВПРить, если у меня произойдёт изменение расчётов (например, добавится дополнительная строчка или что-то ещё).
Цитата
написал:
Поэтому скорее всего нужно редактировать именно шаблон.
Полагаю, что да. Но редактировать шаблон в этом случае означает заново ctrl+c - специальная вставка - связать - вставить число как RTF по всему документу. И делать так каждый раз при изменении расчёта (например, добавится дополнительная строчка или что-то ещё) никакого времени не хватит. Спасибо за ваш ответ.
 
Цитата
Елис Мартьянов написал:
Приложенное фото, как мне кажется, описывает суть проблемы.
Вам так кажется, точнее результат то проблемы описан, но как к нему приходите, не говорится. Это слияние?  макрос?  Если слияние, то скорее всего в поле стоит NEXTRECORD  и надо грамотно изменить в шаблоне. Если макрос, то нужно смотреть метки по которым расставляется и корректировать его или метки в шаблоне. Если просто залинкованы данные, то скорее всего придется проделывать тяжкую работу по всему документу, или писать макрос корректирующий связи, меняя в
thisdocument.Fields(1).Code.Text адрес ячейки
Изменено: БМВ - 21.11.2021 09:45:49
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Это слияние?  макрос?
Не знаю. Для меня это тёмный лес. Буду изучать в будущем...

Связывал данные между эксель и ворд по принципу: скопировал ячейку из excel, alt+ctrl+v в ворде - специальная вставка, alt+z - связать, затем "связать как текст в формате RTF".

Добавил ворд, эксель в шапку темы.
 
в Word запустить
Код
Sub LEdit()
Const insertedrow = 47
For Each Field In ThisDocument.Fields
    FCT = Split(Split(Field.Code.Text, """")(3), "!")(1)
    Row = CLng(Mid(Split(FCT, "C")(0), 2))
    If Row >= insertedrow Then
'     Debug.Print Field.Code.Text
'     Debug.Print Replace(Field.Code.Text, FCT, Replace(FCT, "R" & Row, "R" & Row + 1))
     Field.Code.Text = Replace(Field.Code.Text, FCT, Replace(FCT, "R" & Row, "R" & Row + 1))
     End If
Next
End Sub

insertedrow = 47 - номер вставленной строки, все что ниже будут перелинкованы с новым адресами смещенными на 1
По вопросам из тем форума, личку не читаю.
 
Цитата
написал: в Word запустить
простите, а как это запустить? это макрос? я не знаю, как этим пользоваться.

спасибо за вашу помощь.
 
скопировать код. Открыть ваш шаблон Word. alt+F11, добавить модуль, вставить код, запустить его, после можно модуль удалить.
По вопросам из тем форума, личку не читаю.
 
спасибо
 
Цитата
Елисей Мартьянов написал:
спасибо
это означает что удалось?
По вопросам из тем форума, личку не читаю.
 
честно говоря, нет. я добавил модуль, вроде даже запустил его. ожидаемого результата не увидел. я определённо что-то делаю не так, так не владею VBA и макросами совсем.
возможно ваш ответ пригодится кому-то более продвинутому.
воровать ваше время больше не хочу. спасибо за оперативный ответ ещё раз.
Страницы: 1
Наверх