Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Изменение шрифта части текста в ячейке таблицы Word - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение шрифта части текста в ячейке таблицы Word (Макросы/Sub)
Изменение шрифта части текста в ячейке таблицы Word
Markovich Дата: Суббота, 29.01.2022, 12:21 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, решить задачу, убил кучу времени, но не хватает знаний и не смог найти подобных решений на просторах паутины. Есть таблица excel, из которой выгружаются данные в файлы word. В частности выгружаются названия документов и им присваиваются номера. Все это работает. Но хотелось бы еще для наведения марафета в выгружаемом названии изменить интервал между символами на разреженный (параметр Spacing = 1), при этом в номере межсимвольный интервал должен остаться обычным (параметр Spacing = 0). Т.е. после вставки текста в ячейку таблицы Word у первых 17 символов текста с начала строки нужно сделать межсимвольный интервал разреженным.

[vba]
Код

Sub NumberDOC()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim WrdTbl As Word.Table
Dim WrdCell As Word.Cell

On Error Resume Next
Set WrdApp = GetObject(, "Word.Application")
    If WrdApp Is Nothing Then Set WrdApp = CreateObject("Word.Application")
On Error GoTo 0
WrdApp.Visible = False

Sheets("лист1").Range("B4").Copy
    Set WrdDoc = WrdApp.Documents.Open(ThisWorkbook.Path & "\" & "отчет.docx")
'    Set WrdTbl = WrdDoc.Tables(1)
'    Set WrdCell = WrdTbl.Cell(1, 1)
    Set WrdCell = WrdDoc.Tables(1).Cell(1, 1)
    WrdCell.Range.Delete
    WrdCell.Range.PasteAndFormat (22)

'WrdCell.Range.Text = Left(WrdCell, 17)
'WordApp.Font
'WrdCell.Range.Font
'.Spacing = 1

'If WrdApp.Documents.Count = 0 Then
'    WrdApp.Quit
'    Exit Sub
'End If

WrdApp.Visible = True

End Sub
[/vba]
К сообщению приложен файл: 1698036.zip (31.7 Kb)
 
Ответить
СообщениеЗдравствуйте, уважаемые форумчане! Помогите, пожалуйста, решить задачу, убил кучу времени, но не хватает знаний и не смог найти подобных решений на просторах паутины. Есть таблица excel, из которой выгружаются данные в файлы word. В частности выгружаются названия документов и им присваиваются номера. Все это работает. Но хотелось бы еще для наведения марафета в выгружаемом названии изменить интервал между символами на разреженный (параметр Spacing = 1), при этом в номере межсимвольный интервал должен остаться обычным (параметр Spacing = 0). Т.е. после вставки текста в ячейку таблицы Word у первых 17 символов текста с начала строки нужно сделать межсимвольный интервал разреженным.

[vba]
Код

Sub NumberDOC()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim WrdTbl As Word.Table
Dim WrdCell As Word.Cell

On Error Resume Next
Set WrdApp = GetObject(, "Word.Application")
    If WrdApp Is Nothing Then Set WrdApp = CreateObject("Word.Application")
On Error GoTo 0
WrdApp.Visible = False

Sheets("лист1").Range("B4").Copy
    Set WrdDoc = WrdApp.Documents.Open(ThisWorkbook.Path & "\" & "отчет.docx")
'    Set WrdTbl = WrdDoc.Tables(1)
'    Set WrdCell = WrdTbl.Cell(1, 1)
    Set WrdCell = WrdDoc.Tables(1).Cell(1, 1)
    WrdCell.Range.Delete
    WrdCell.Range.PasteAndFormat (22)

'WrdCell.Range.Text = Left(WrdCell, 17)
'WordApp.Font
'WrdCell.Range.Font
'.Spacing = 1

'If WrdApp.Documents.Count = 0 Then
'    WrdApp.Quit
'    Exit Sub
'End If

WrdApp.Visible = True

End Sub
[/vba]

Автор - Markovich
Дата добавления - 29.01.2022 в 12:21
Markovich Дата: Воскресенье, 06.02.2022, 12:18 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 50
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019
Может кому то пригодится в будущем решение данной задачи от Shocker.Pro с форума www.sql.ru. Кодом, запускаемым из Excel, изменяется межсимвольный интервал с 1 по 17 символ текста в ячейке таблицы Word.
[vba]
Код
Sub IntervalFont()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim t As Word.Range

On Error Resume Next
Set WrdApp = GetObject(, "Word.Application")
    If WrdApp Is Nothing Then Set WrdApp = CreateObject("Word.Application")
On Error GoTo 0

Set WrdDoc = WrdApp.Documents.Open(ThisWorkbook.Path & "\" & "отчет.docx")
Set t = WrdDoc.Tables(1).Cell(1, 1).Range
WrdDoc.Range(t.Start, t.Start + 17).Font.Spacing = 3

End Sub
[/vba]


Сообщение отредактировал Markovich - Воскресенье, 06.02.2022, 12:19
 
Ответить
СообщениеМожет кому то пригодится в будущем решение данной задачи от Shocker.Pro с форума www.sql.ru. Кодом, запускаемым из Excel, изменяется межсимвольный интервал с 1 по 17 символ текста в ячейке таблицы Word.
[vba]
Код
Sub IntervalFont()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim t As Word.Range

On Error Resume Next
Set WrdApp = GetObject(, "Word.Application")
    If WrdApp Is Nothing Then Set WrdApp = CreateObject("Word.Application")
On Error GoTo 0

Set WrdDoc = WrdApp.Documents.Open(ThisWorkbook.Path & "\" & "отчет.docx")
Set t = WrdDoc.Tables(1).Cell(1, 1).Range
WrdDoc.Range(t.Start, t.Start + 17).Font.Spacing = 3

End Sub
[/vba]

Автор - Markovich
Дата добавления - 06.02.2022 в 12:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение шрифта части текста в ячейке таблицы Word (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!