Мне нужно форматировать ячейку с формулой. Знаю, что формула не форматируется, можно ли это реализовать макросом? Вот код.
Код
With Range("A19").Value = "=""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
&" полученной от реализации перевозок по договору №____ от « 28 » августа 20 15 года," _
&" составляет""&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R13C15&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R14C15&"",""&"" без НДС."""
a = Split(.Value, " ")
For i = 0 To UBound(a)
Select Case i
Case 4, 6, 8, 12, 14, 16 'это номера слов разделенных пробелом, от 0 и которые нужно форматировать.'
With .Characters(b + 1, Len(a(i))).Font
.Italic = True
.Underline = True
End With
End Select
b = b + Len(a(i)) + 1
Next
End With
With Range("A19")
.FormulaR1C1 = "=""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
&" полученной от реализации перевозок по договору №____ от « 28 » августа 20 20 года," _
&" составляет""&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R13C15&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R14C15&"",""&"" без НДС."""
.Formula=.Value
БМВ, спасибо вам, код работает, но вот никак не могу правильно подобрать номера слов, вроде по порядку считаю, но почему то форматируется не то, что мне нужно.
возьмите ваше значение и разбейте по словам через инструмент текст по столбцам с разделителем пробел номера столбцов за минусом 1 дадут вам то что нужно.
форматирует не с первого слова, а вот так "1.1. Обязательство Субагента перед Агентом по перечислению выручки, полученной от реализации перевозок по договору №____ от « 28 » августа 20 20 года, составляет 0 рублей, без НДС."
БМВ, то, что нужно форматировать я выделил курсивом и подчеркнул "1.1. Обязательство Субагента перед Агентом по перечислению выручки, полученной от реализации перевозок по договору №____ от « 21» августа 20 15 года, составляет0рублей, без НДС."
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Range("A8")
.Value = "за период с " & Format(DateSerial(Year(Now), Month(Now) + 0, 0) + 1, "[$-FC22]« D » MMMM 20 YY г.") & " по " & Format(DateSerial(Year(Now), Month(Now) + 0, 0) + 10, "[$-FC22]« D » MMMM 20 YY г.")
a = Split(.Value, " ")
For i = 0 To UBound(a)
Select Case i
Case 4, 6, 8, 12, 14, 16
With .Characters(b + 1, Len(a(i))).Font
.Italic = True
.Underline = True
End With
End Select
b = b + Len(a(i)) + 1
Next
End With
With Range("A19")
.FormulaR1C1 = "=""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
& " полученной от реализации перевозок по договору №___ от « 21 » августа 20 15 года," _
& " составляет""&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R13C15&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R14C15&"",""&"" без НДС."""
.Formula = .Value
a = Split(.Value, " ")
For i = 0 To UBound(a)
Select Case i
Case 0
With .Characters(b + 1, Len(a(i))).Font
.Italic = True
.Underline = True
End With
End Select
b = b + Len(a(i)) + 1
Next
End With
End Sub
Может причина в том, что они относятся к одному событию?
Ибрагим Белхороев написал: Но как почему то набор символов без пробела форматируется некорректно.
Если вы форматируете первое слово (индекс в массиве 0), то почему вы считаете, что должно отформатироваться 15 слово (индекс в массиве 14)? Или у вас с арифметикой нелады, и других чисел вы не знаете? БМВ все разжевал, на ложку положил, в рот вам засунул... Проглотите уже.
а чего удивительного если вы не следуете рекомендациям. В текст по столбцам разделили? результат видели? Обратили внимание на то что не все разделилось как надо? часть пробелов не просто пробелы, а неразрывные пробелы. измените
Код
a = Split(Replace(.Value,chr(160)," ") , " ")
Цитата
RAN написал: все разжевал, на ложку положил, в рот вам засунул...
БМВ, я извиняюсь, я пытаюсь разобраться самостоятельно, просто у меня начинающий уровень владения экселем. Я вставил этот код
Код
a = Split(Replace(.Value,chr(160)," ") , " ")
Но что-то не получается все равно, может я скину файл, так будет проще понять, что я делаю неправильно. В файле 2 данные, на которые ссылается файл 1 при открытии.
With Range("A19")
.FormulaR1C1 = "=""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
& " полученной от реализации перевозок по договору №___ от « 21 » августа 20 15 года," _
& " составляет""&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R13C15&"" ""&'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R14C15&"",""&"" без НДС."""
.Formula = .Value
a = Split(Replace(.Value, Chr(160), " "), " ")
For i = 0 To UBound(a)
Select Case i
Case 0
With .Characters(b=0, Len(a(i))).Font 'вот тут b=0?'
.Italic = True
.Underline = True
End With
End Select
b = b + Len(a(i)) + 1
Next
End With