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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2016, 14:31   #1
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию Выделить текст и посадить на него закладку

Уважаемые форумчане!

Пожалуйста, подскажите что делаю не так?
Есть таблица, в первом столбце данные.
Нужно добавить закладку на текст ячейки первого столбца, чтобы при создании перекрестной ссылки появлялся текст закладки.
Делаю так, но получается в закладку берется не текст ячейки, а вся ячейка.
И при создании перекрестной ссылки, выбрав "текст закладки", появляется вся ячейка.
Код:
Sub AddBookmarkToTaskCard()

Dim oTable As Word.Table
Dim iCellValue As String, BookmarkName As String
Dim iRowsCount As Integer, i As Long
On Error Resume Next

    For Each oTable In ThisDocument.Tables 'Просматриваем в каждой таблице
        If Left(oTable.Cell(1, 1).Range.Text, 11) = "TASK NUMBER" Then
            iRowsCount = oTable.Rows.Count 'Считаем количество строк в таблице
            For i = 2 To iRowsCount
                iCellValue = Replace(oTable.Cell(i, 1).Range.Text, vbCr, "") 'Убираем все переносы в ячейке
                iCellValue = Left(iCellValue, Len(iCellValue) - 2) 'Убираем два последних знака (непонятно почему появляются лишние знаки)
                oTable.Cell(i, 1).Range.Text = iCellValue 'Вставляем текст в ячейку
                BookmarkName = Replace(oTable.Cell(i, 1).Range.Text, "-", "_") 'Меняем знак "-" на "_" для имени закладки
                ActiveDocument.Bookmarks.Add Range:=oTable.Cell(i, 1).Range, Name:=BookmarkName 'Вставляем закладку на текст ячейки
            Next i
        End If
    Next oTable

End Sub
Тема открыта на Cyberforum
Изображения
Тип файла: jpg Тест.jpg (15.5 Кб, 113 просмотров)

Последний раз редактировалось ac1-caesar; 24.05.2016 в 14:43.
ac1-caesar вне форума Ответить с цитированием
Старый 24.05.2016, 15:59   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Видимо для диаппазона закладки нужно использовать только диппазон текста, без спецзнака
Код:
Sub AddBookmarkToTaskCard()

Dim oTable As Word.Table
Dim iCellValue As String, BookmarkName As String
Dim iRowsCount As Integer, i As Long
Dim R As Range
On Error Resume Next

    For Each oTable In ThisDocument.Tables 'Просматриваем в каждой таблице
        If Left(oTable.Cell(1, 1).Range.Text, 11) = "TASK NUMBER" Then
            iRowsCount = oTable.Rows.Count 'Считаем количество строк в таблице
            For i = 2 To iRowsCount
                Set R = oTable.Cell(i, 1).Range ' Диаппазон ячейки
                R.End = R.End - 1   ' диаппазон текста ячейки без спецсимвола
                iCellValue = Replace(R.Text, vbCr, "") 'Убираем все переносы в ячейке
                R.Text = iCellValue 'Вставляем текст
                BookmarkName = Replace(iCellValue, "-", "_") 'Меняем знак "-" на "_" для имени закладки
                ActiveDocument.Bookmarks.Add Range:=R, Name:=BookmarkName 'Вставляем закладку на текст ячейки
            Next i
        End If
    Next oTable

End Sub
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 24.05.2016, 16:55   #3
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Step_UA, вот спасибо, выручили!
А то уже и .Find прикручивал, результат тот же.
ac1-caesar вне форума Ответить с цитированием
Старый 24.05.2016, 18:35   #4
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Если планируется редактирование таблицы, что содержит закладки, то советую присмотреться к закладкам уже после правки. Не дружат закладки со вставкой / удалением строк, столбцов, ячеек.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 25.05.2016, 10:14   #5
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию

Как раз с этим и столкнулся, предварительно были созданы закладки, после редактирования таблицы все исчезли. На ячейку получалось посадить закладку, а на текст ячейки подсказал Step_UA. Теперь норма!
ac1-caesar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделить(залить) текст подзаголовка Foo_fighter Microsoft Office Word 0 18.03.2014 15:20
Выделить текст из строки. Alexxa Visual C++ 1 07.05.2013 10:35
Выделить текст от слова до нумерованного списка Dimasick Microsoft Office Word 6 09.01.2012 23:22
Как выделить текст между тегами SeRhy PHP 1 04.01.2012 15:12