powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перенос текста в ячейке таблицы
4 сообщений из 4, страница 1 из 1
Перенос текста в ячейке таблицы
    #33787275
Sidra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помощи. Сам практически чайник. Есть шаблон Ворда. В нем есть таблицы, которые заполняются програмно. Необходимо узнать когда текст в ячейке переносится на новую строку при автовысоте строки таблицы и добавлении текста по одному слову.
...
Рейтинг: 0 / 0
Перенос текста в ячейке таблицы
    #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
Перенос текста в ячейке таблицы
    #33788023
Sidra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Буду пробовать!
...
Рейтинг: 0 / 0
Перенос текста в ячейке таблицы
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перенос текста в ячейке таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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