Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2010, 16:26   #1
ama3ono4ka
 
Регистрация: 04.08.2010
Сообщений: 4
Печаль Сброс формата текста при обновлениии

Проблема такова:
1. Я делаю перекрестную ссылку на рисунок в документе.
2. Эту ссылку я выделяю и жма макрос(который выделенный текст делает определенным стилем, в данном случае синим).Пока все замечательно
3. Но! Когда я жму обновление ссылки, то последний стиль слетает и ссылка остается с первоначальным стилем.

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

Просьба помоч. Может кто то знает (может надо исправлять в самом макросе) как сделать так чтобы новый стиль ссылки сохранялся при обновлении.Спасибо
ama3ono4ka вне форума Ответить с цитированием
Старый 04.08.2010, 16:47   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Нажмите Alt-F9.
Добавьте в поле ссылки ключ \* mergeformat.
Обновите ссылку (жмакните F9).

А макрос хотелось бы посмотреть. А то вслепую я как-то не уверен.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.08.2010, 13:28   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Ну вы хотя бы текст макроса показали, как вы там стиль меняете. Я не понимаю, зачем нужен макрос, чтобы поменять стиль?
Если вы действительно макросом задаёте тексту стиль (как при выборе из библиотеки стилей), то он сбрасываться не будет. Если же макросом вы всего лишь меняете цвет, т.е. форматирование, то при обновлении поля оно будет сброшено.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 06.08.2010, 17:20   #4
ama3ono4ka
 
Регистрация: 04.08.2010
Сообщений: 4
По умолчанию

да,нужно было сразу показать макрос)
Итак, Макрос на вставку ссылки таков :


Sub Link(ByVal control As IRibbonControl)
'
' Âñòàâêà_ññûëêè Ìàêðîñ
'
Dim st As String
Dim tut As Range
Set tut = Selection.Range
'Selection.Collapse
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Íàçâàíèå îáúåêòà")
With Selection.Find
.Text = "Ðèñ."
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
If Selection.Find.Execute = True Then
Selection.MoveRight Unit:=wdCharacter, Count:=2
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
st = Selection.Text
tut.Select
Selection.InsertCrossReference ReferenceType:="Ðèñ.", ReferenceKind:= _
wdOnlyLabelAndNumber, ReferenceItem:=st, InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
End If
End Sub

Отдельно есть макрос который выделенный тест оформляет определенным стилем (вот его то я и жму когда хочу придать ссылке определенный стиль и при обновлении он слетает =() :

Sub Blue(ByVal control As IRibbonControl)
' blue Ìàêðîñ
Selection.Style = ActiveDocument.Styles("Õàðàìàìáóðó" )
End Sub
ama3ono4ka вне форума Ответить с цитированием
Старый 06.08.2010, 22:38   #5
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Так, вроде всё правильно. Сделал то же самое вручную у себя: стиль перекрёстной ссылки сохраняется. Приложи весь документ, вместе с кодом ленты
Код нужно оформлять тегом [code][/code]
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 06.08.2010 в 22:43.
viter.alex вне форума Ответить с цитированием
Старый 08.08.2010, 15:22   #6
CyberMen
Заблокирован
 
Регистрация: 08.08.2010
Сообщений: 41
По умолчанию

ama3ono4ka
Цитата:
жмакать правой кнопкой мыши и ставить галочку на "соохранить формат при обновлении"
да, ты права, надо жмакать.
Тут такая ситуация складывается, что перекрёстные ссылки ведут себя по-разному в зависимости от способа воздействия на них. Если делаешь шрифт перекрёстной ссылки жирным с помощью интерфейса, то галочка "Сохранять формат при обновлении" встаёт автоматически. Если же сделать шрифт перекрёстной ссылки жирным с помощью макроса:
Код:
Sub m_1()
Selection.Font.Bold = True
End Sub
то галочка уже не ставится.

То есть вопрос в чём? В автоматической вставке галочки "Сохранять формат при обновлении".

Пока вот такое откопал:
Код:
Sub m_2()
Selection.Fields(1).Code.Text = Selection.Fields(1).Code & "\* MERGEFORMAT"
End Sub
Очень большое неудобство - надо полностью выделить перекрёстную ссылку перед применением макроса.

Последний раз редактировалось CyberMen; 08.08.2010 в 16:37.
CyberMen вне форума Ответить с цитированием
Старый 12.08.2010, 16:52   #7
ama3ono4ka
 
Регистрация: 04.08.2010
Сообщений: 4
По умолчанию

Хм, помогло то помогло не менять офрмат (см. рис.1), но вот косяк...если я удаляю ссылку и источник этой ссылки и делаю обновление послеующей ссылке то мне выдает ошибку (см. рис. 2)

Рис. 1



Рис.2

Последний раз редактировалось ama3ono4ka; 12.08.2010 в 17:01.
ama3ono4ka вне форума Ответить с цитированием
Старый 12.08.2010, 20:11   #8
CyberMen
Заблокирован
 
Регистрация: 08.08.2010
Сообщений: 41
По умолчанию

ama3ono4ka
нет рисунков на форуме и что тебе помогло то, помогло.
CyberMen вне форума Ответить с цитированием
Старый 17.08.2010, 11:11   #9
ama3ono4ka
 
Регистрация: 04.08.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от CyberMen Посмотреть сообщение
ama3ono4ka

да, ты права, надо жмакать.
Тут такая ситуация складывается, что перекрёстные ссылки ведут себя по-разному в зависимости от способа воздействия на них. Если делаешь шрифт перекрёстной ссылки жирным с помощью интерфейса, то галочка "Сохранять формат при обновлении" встаёт автоматически. Если же сделать шрифт перекрёстной ссылки жирным с помощью макроса:
Код:
Sub m_1()
Selection.Font.Bold = True
End Sub
то галочка уже не ставится.

То есть вопрос в чём? В автоматической вставке галочки "Сохранять формат при обновлении".

Пока вот такое откопал:
Код:
Sub m_2()
Selection.Fields(1).Code.Text = Selection.Fields(1).Code & "\* MERGEFORMAT"
End Sub
Очень большое неудобство - надо полностью выделить перекрёстную ссылку перед применением макроса.
вот это чуть помогло..но не то что нужно
ama3ono4ka вне форума Ответить с цитированием
Старый 17.08.2010, 20:05   #10
CyberMen
Заблокирован
 
Регистрация: 08.08.2010
Сообщений: 41
По умолчанию

ama3ono4ka
опиши, что не так.
CyberMen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сброс цвета некоторых слов при изменении стиля текста 3D.KENWOOD Microsoft Office Word 11 23.06.2010 20:42
проблема с изменением формата даты при копировании из CSV формата в эксель mars56 Microsoft Office Excel 4 16.03.2010 09:50
Ограниченный тип 0..11 сброс в нуль при перепонении Alex Cones Общие вопросы Delphi 4 14.01.2010 11:56
кнопка сброс Nellas Общие вопросы Delphi 2 21.10.2009 22:19
Сохранение текста (RichEdit) без формата Air Помощь студентам 2 06.08.2008 17:50