Проблема в том, что при обновлении месяца форматирование ячейки искажается, допустим при наступлении сентября результат кода будет таким "за период с 1сентября 20 21 г. по 10 сентября 20 21 г." Подскажите, что нужно поменять в коде, чтобы это исправить?
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 3, 4, 6, 9, 10, 12
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")
.Value = _
"1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
& "полученной от реализации перевозок по договору" _
& "№13 – САГ от « 28 » августа 20 20 года, составляет "
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
Ігор Гончаренко написал: заменить на переменные, а переменные вычислять
используя поиск , который, в свою очередь, основан на признаках по которым находятся те символы, которые нужно отформатировать. Но в указанном примере может быть что угодно и по одной строке судить о логике не возможно. если конечно фразы в тексте меняются, а если нет, то посчитайте все остается также , считайте слова и указывайте в CASE
БМВ, можете тогда подсказать, почему этот код не применяет форматирование к ячейке?
Код
With Range("A8")
.FormulaR1C1 = _
"=CONCATENATE(""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
& "полученной от реализации перевозок по договору" _
& "№13 – САГ от « 28 » августа 20 20 года," _
& "составляет"","" "",'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R13C15,"" "",'[Реестр грузовых авианакладных копия1.xlsm]Итоговая декада'!R14C15,"","","" без НДС."")"
a = Split(.FormulaR1C1, " ")
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
RAN, но когда применяю к ячейке, все равно не работает?
Код
With Range("A8")
.Value = _
"=CONCATENATE(""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
& "полученной от реализации перевозок по договору" _
& "№13 – САГ от « 28 » августа 20 20 года," _
& "составляет"","" "",'[Реестр грузовых авианакладных копия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
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("A8")
.Value = _
"=CONCATENATE(""1.1. Обязательство Субагента перед Агентом по перечислению выручки," _
& "полученной от реализации перевозок по договору" _
& " №13 – САГ от « 28 » августа 20 20 года," _
& " составляет"","" "",'[Реестр грузовых авианакладных копия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
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
RAN, но тут же тоже формула даты, почему в этом коде работает, а в другом нет?
Код
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 3, 4, 6, 9, 10, 12
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