Страницы: 1
RSS
Сохранение надстрочных /подстрочных символов в ячейке
 
Как с помощью макроса добиться, чтобы сохранялись надстрочные/подстрочные символы в ячейке?
В приложенном файле приведён пример.
 
Как вариант - например в словаре запоминать вместе с адресом ячейки или строкой вот это:

Скрытый текст

и затем пройтись по результату и восстановить.
Изменено: Hugo - 13.05.2020 15:00:31
 
Код
Range("F6").Value(11) = Replace(Replace(Replace(Range("f3").Value(11), """#", Chr(7)), "#", "&#10"), Chr(7), """#")
Изменено: БМВ - 13.05.2020 15:48:14
По вопросам из тем форума, личку не читаю.
 
Очень большой объём придётся восстанавливать, файл очень огромный.
Забыл уточнить, что в файле примера необходимо в ячейке все знаки # заменить на ALT-ENTER (CHR (10)).При такой замене вручную всё получается как надо, а при замене макросом  -  надстрочные/подстрочные символы в ячейке не сохраняются. Обидно.
 
Проверил, работает. Только проще не 1/0 сохранять, а как есть булево.
Код
Sub tt()
    Dim i&, t$, d As Object, arr

    Set d = CreateObject("scripting.dictionary")

    t = Selection
    For i = 1 To Len(t)
        d.Item(i & "|" & Mid(t, i, 1)) = Selection.Characters(Start:=i, Length:=1).Font.Superscript _
                                       & "|" & Selection.Characters(Start:=i, Length:=1).Font.Subscript

    Next
    
    t = Replace(t, "#", Chr(10))

    Selection(4).Value = t
    For i = 1 To Len(t)
        If d.exists(i & "|" & Mid(t, i, 1)) Then
            arr = Split(d.Item(i & "|" & Mid(t, i, 1)), "|")
            Selection(4).Characters(Start:=i, Length:=1).Font.Superscript = arr(0)
            Selection(4).Characters(Start:=i, Length:=1).Font.Subscript = arr(1)
        End If
    Next
End Sub

Это для одной ячейки. Если их много - нужно в ключе сохранять ещё привязку к ячейке, чтоб не путать.
Изменено: Hugo - 13.05.2020 15:32:37
 
БМВ, а что за Range("f3").Value(11).Value(11) - у меня такое не понимает....
 
исправил
также можно просто
Ctrl+H  найти и заменить, найти # заменить на CTRL+J

Код
Range("E3").Replace What:="#", Replacement:=Chr(10)
Изменено: БМВ - 13.05.2020 15:47:41
По вопросам из тем форума, личку не читаю.
 
У меня всё равно не пашет, ругается на  Range("6")
Если указать например Range("f4").Value(11) =... то ОК.
Только по строкам не разбивает, нужно формат ячейки менять.
Спасибо.
 
Hugo, да пока правил накорябал хрени, да еще инет отключился на минуту
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
накорябал хрени
Для самокрутки? :)
 
Цитата
Юрий М написал:
Для самокрутки?
тут покурить некогда, и так несколько RDP сессий висит, да еще пара вложенных, На рабочем компе открыт Excel, тут .... короче .... дистанционка.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх