Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перенос текста в ячейке таблицы / 4 сообщений из 4, страница 1 из 1
13.06.2006, 12:48
    #33787275
Sidra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос текста в ячейке таблицы
Прошу помощи. Сам практически чайник. Есть шаблон Ворда. В нем есть таблицы, которые заполняются програмно. Необходимо узнать когда текст в ячейке переносится на новую строку при автовысоте строки таблицы и добавлении текста по одному слову.
...
Рейтинг: 0 / 0
13.06.2006, 14:42
    #33787726
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос текста в ячейке таблицы
Как всегда, легального метода определить переносится ли текст в ячейке таблицы - нет, но можно попробовать следующий вариант.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Public Sub DetermineWraps()
    Dim cel As Word.Cell
    Dim tbl As Word.Table
    Dim rng As Word.Range
    Dim sngFirst As Single
    Dim sngLast As Single
    
    Set tbl = ActiveDocument.Tables( 1 )
    
    For Each cel In tbl.Range.Cells
        Set rng = cel.Range
        
        rng.MoveEnd Unit:=wdCharacter, Count:=- 1 
        
        sngFirst = rng.Characters.First. _
          Information(wdVerticalPositionRelativeToPage)
        sngLast = rng.Characters.Last. _
          Information(wdVerticalPositionRelativeToPage)
        
        If CBool(sngLast - sngFirst) Then
            ' Текст перенесен.
            cel.Shading.BackgroundPatternColor = wdColorGray05
        End If
    Next cel
End Sub
...
Рейтинг: 0 / 0
13.06.2006, 16:05
    #33788023
Sidra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос текста в ячейке таблицы
Спасибо! Буду пробовать!
...
Рейтинг: 0 / 0
14.06.2006, 14:45
    #33790364
Sidra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос текста в ячейке таблицы
Поковырялся. Нашел немного другое решение. Если количество строк в документе меняется, то, следовательно, происходит перенос.
Написал такую функцию. Происходит поиск и замена текста в ячейке таблицы. Если происходит перенос, то заменяемая строка обрезается и возвращается оставшаяся часть строки. Зачем мне это понадобилось - другая тема. Это мои первые попытки, поэтому возможно , что и коряво.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Function fncReplaceTextOnOneString(FindTxt As String, ReplaceTxt As String) As String
    Dim rng As Range
    Dim sngFirst As Single
    Dim sngLast As Single
    Dim cntLines As Integer
    Dim ret As Boolean
    Dim retString As String
    
    retString = ""
    ret = False
    
    
    cntLines = ActiveDocument.BuiltInDocumentProperties(wdPropertyLines)
    Selection.Find.Text = FindTxt
    Selection.Find.Replacement.Text = ReplaceTxt
    Selection.Find.Wrap = wdFindContinue
    Selection.Find.Execute Replace:=wdReplaceOne
    Set rng = Selection.Cells( 1 ).Range
    ret = CBool(cntLines = ActiveDocument.BuiltInDocumentProperties(wdPropertyLines))
    
    If ret Then
        fncReplaceTextOnOneString = retString
    Else
        Do
            retString = rng.Words(rng.Words.Count -  1 ) + retString
            rng.Words(rng.Words.Count -  1 ).Delete
            ret = CBool(cntLines = ActiveDocument.BuiltInDocumentProperties(wdPropertyLines))
        fncReplaceTextOnOneString = retString
        Loop While Not ret
    End If
    
            
    End Function

...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перенос текста в ячейке таблицы / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]