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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2018, 18:37   #1
Dmitry408
 
Регистрация: 04.02.2018
Сообщений: 6
По умолчанию вставить значение переменной в текст ворд

Уважаемые форумчане. Помогите пожалуйста решить задачу.
a = TextBox1
b = TextBox2
x = TextBox3
c = a +b
В тексте документа за фразой "Итого получилось:" необходимо вставить c, a, b, x
- фраза "Итого получилось:"может находится в любом месте документа и иметь любое форматирование.
-c, b, a должны менять цвет на разных результатах. Например: если а > 2, то красным цветом, если а < 1 , то зеленым , от 1 до 2 цвет не меняется.
- х любая переменная.

Заранее огромное спасибо. Если неправильно написал Извините, уровень знания VBA и в частности word vba очень низок.
Dmitry408 вне форума Ответить с цитированием
Старый 06.02.2018, 17:35   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Поскольку у меня нет текстбоксов, использовал случайные числа
Код:
Dim origCol

Sub Dmitry408()
Dim a, b, x, c

a = Rnd() * 2 'TextBox1
b = Rnd() * 2 'TextBox2
x = 789 'TextBox3
c = a + b
  Selection.HomeKey wdStory
  With Selection.Find
    .ClearFormatting
    .Text = "Итого получилось:"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
  End With
  If Selection.Find.Execute Then
    origCol = Selection.Font.Color
    InsNum c, a, b, True
    InsNum x, False
  Else
    MsgBox "Не найден фрагмент 'Итого получилось:'"
  End If
End Sub

Private Sub InsNum(ParamArray n())
  'вставляет и раскрашивает одно или несколько чисел. Последний параметр True-раскрашивать, False-нет
Dim i&
  For i = 0 To UBound(n) - 1
    Selection.Collapse wdCollapseEnd
    Selection.InsertAfter " " & n(i)
    If n(UBound(n)) Then
      If n(i) > 2 Then
        Selection.Font.Color = vbRed
      ElseIf n(i) < 1 Then
        Selection.Font.Color = vbGreen
      Else
        Selection.Font.Color = origCol
      End If
    Else
      Selection.Font.Color = origCol
    End If
  Next
  Selection.Collapse wdCollapseEnd
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 07.02.2018, 17:03   #3
Dmitry408
 
Регистрация: 04.02.2018
Сообщений: 6
По умолчанию

Огромное человеческое спасибо. И за то, что откликнулись и за потраченное время. Это то что надо.
Наши не то программисты, не то сис админы сказали -" MS office это не их уровень у них другие масштабы". А я застрял на этой вставке в Worde.
А за отсутствие textbox извиняюсь, нужен был сам смысл как осуществить вставку когда известный текст неизвестно где.
Dmitry408 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как значение переменной передать другой переменной? - jQuery serauto79 JavaScript, Ajax 4 05.08.2015 17:03
как вставить значение переменной в формулу ActiveCell.FormulaR1C1 = "=SUM(Лист1:Лист3!RC)" вместо имени листов. vneizvecnocty Microsoft Office Excel 3 25.03.2012 19:01
Найти значение переменной y в зависимости от значения переменной х Rishi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.05.2011 20:25
Как ввести в ячеку текст и значение переменной? clever77 Microsoft Office Excel 3 21.04.2011 17:23
Ворд 2003 вставить текст по центру ячейки Паша Microsoft Office Word 1 10.03.2008 13:40