-1
У меня есть таблица в MS Word (2016) с номерами от 1 до 7 цифр (от единиц до миллионов), мне нужно, чтобы все единицы, тысячи и миллионы были зеленого цвета, десятки, десять тысячи - в синем, сотни и сотни тысяч - в красном. Не могли бы вы помочь мне с помощью скрипта vba?Изменить цвет для символа в определенном положении
Sub creatable()
Dim docNew As Document
Dim tableNew As Table
Dim celltable As Cell
Dim X As Integer
Dim y As Integer
Dim cnt As Integer
Dim Rndm As Long
Dim a As Long
Dim b As Long
Dim celTable As Cell
Dim intCount As Integer
Dim intChar As Integer
a = CInt((Rnd() + 1) * (Int((2025 * Rnd()) + 1)))
b = CInt((Rnd() + 1) * (Int((4355 * Rnd()) + 1)))
Rndm = a + b
Set docNew = Documents.Add
Set tableNew = docNew.Tables.Add(Selection.Range, 6, 12)
For y = 1 To 12
With tableNew
.Cell(X, y).Range.InsertAfter Rndm * X
End With
For X = 1 To 6
With tableNew
.Cell(X, y).Range.InsertAfter Rndm * y
End With
Next
Next
For Each celTable In tableNew.Range.Cells
intChar = celTable.Range.Characters.Count
If celTable.Range.Characters.Count = 1 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
End If
If celTable.Range.Characters.Count = 2 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 2).Font.ColorIndex = wdBlue
End If
If celTable.Range.Characters.Count = 3 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 2).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 3).Font.ColorIndex = wdRed
End If
If celTable.Range.Characters.Count = 4 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 2).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 3).Font.ColorIndex = wdRed
celTable.Range.Characters(intChar - 4).Font.ColorIndex = wdGreen
End If
If celTable.Range.Characters.Count = 5 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 2).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 3).Font.ColorIndex = wdRed
celTable.Range.Characters(intChar - 4).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 5).Font.ColorIndex = wdBlue
End If
If celTable.Range.Characters.Count = 6 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 2).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 3).Font.ColorIndex = wdRed
celTable.Range.Characters(intChar - 4).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 5).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 6).Font.ColorIndex = wdRed
End If
If celTable.Range.Characters.Count = 7 Then
celTable.Range.Characters(intChar - 1).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 2).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 3).Font.ColorIndex = wdRed
celTable.Range.Characters(intChar - 4).Font.ColorIndex = wdGreen
celTable.Range.Characters(intChar - 5).Font.ColorIndex = wdBlue
celTable.Range.Characters(intChar - 6).Font.ColorIndex = wdRed
celTable.Range.Characters(intChar - 7).Font.ColorIndex = wdGreen
End If
intCount = intCount + 1
Next celTable
End Sub
This is how it should look at the end
Какие исследования вы сделали? Просьба представить код, который вы попробовали, и объяснить, как он не работает. Обратите внимание, что StackOverflow не является учебным пособием или службой написания кода, как описано в [help]. –
У меня есть таблица и случайное значение в ней. Я могу подсчитать длину для каждого номера, но не знаю, как правильно установить цвет: – DesertDoxRiga