Добрый день! Помогите решить проблему с подстрочными/надстрочными символами в формуле. К примеру, если значение ячейки равняется "спирт", то в ячейке должно появиться C2H5OH, причем 2 и 5 должны быть подстрочными. Другой пример: если значение ячейки равняется "Сила действующая", то в ячейке должно появиться Pдейств., причем "действ." должна быть надстрочной.
Добрый день! Помогите решить проблему с подстрочными/надстрочными символами в формуле. К примеру, если значение ячейки равняется "спирт", то в ячейке должно появиться C2H5OH, причем 2 и 5 должны быть подстрочными. Другой пример: если значение ячейки равняется "Сила действующая", то в ячейке должно появиться Pдейств., причем "действ." должна быть надстрочной.Diman1990
Подстрочные и надстрочные - это символы Юникода. Ну тогда вставляйте коды этих символов через ChrW Я вот так себе дополнительные форматы ячеек сделал:[vba]
Код
Private Sub FORMAT_M2(): ActiveWindow.RangeSelection.NumberFormat = "#,##0"" м""" & ChrW(178): End Sub
Private Sub FORMAT_M3(): ActiveWindow.RangeSelection.NumberFormat = "#,##0"" мм""" & ChrW(179): End Sub
Sub Ruble_Symbol() ActiveCell.FormulaR1C1 = ChrW(8381) End Sub
[/vba]Формируйте стринг для своих целей по аналогии
Подстрочные и надстрочные - это символы Юникода. Ну тогда вставляйте коды этих символов через ChrW Я вот так себе дополнительные форматы ячеек сделал:[vba]
Код
Private Sub FORMAT_M2(): ActiveWindow.RangeSelection.NumberFormat = "#,##0"" м""" & ChrW(178): End Sub
Private Sub FORMAT_M3(): ActiveWindow.RangeSelection.NumberFormat = "#,##0"" мм""" & ChrW(179): End Sub
Sub Ruble_Symbol() ActiveCell.FormulaR1C1 = ChrW(8381) End Sub
[/vba]Формируйте стринг для своих целей по аналогииAlex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 24.11.2016, 13:22
Поподробнее рассказать как написать макрос? Вы издеваетесь? И, к стати, Nic70yв своём посте Вам решение уже подсказал, написав C₂H₅OH не с использованием подстрочных и надстрочных символов, а с использованием символов Юникода, которые прекрасно передаются формулами листа. Просто на свободном месте листа (например, в А1) введите C₂H₅OH (отсюда скопируйте), а в В1 напишите:
Код
=A1
Убедились, что Юникод формулами листа передаётся? Ну, тогда и соответствующее решение вытекает: В ячейках свободного (скрытого) листа (а можно и сразу в именах) создаёте перечень необходимых значений с использованием символов Юникода и присваиваете этим ячейкам соответствующие имена. Например, ячейке, в которой написано C₂H₅OH, даёте имя C2H5OH (или любое другое, удобное Вам). А потом в формулах пишете не сами значения, а имена (но уже без кавычек, естественно). ------------------------------- Одно НО: в Юникоде существуют коды только надстрочных и подстрочных цифр от 0 до 9, а букв там, естественно, нет. Поэтому ФОРМУЛАМИ Вы сможете вывести в ячейку C₂H₅OH, но не сможете Pдейств.
Поподробнее рассказать как написать макрос? Вы издеваетесь? И, к стати, Nic70yв своём посте Вам решение уже подсказал, написав C₂H₅OH не с использованием подстрочных и надстрочных символов, а с использованием символов Юникода, которые прекрасно передаются формулами листа. Просто на свободном месте листа (например, в А1) введите C₂H₅OH (отсюда скопируйте), а в В1 напишите:
Код
=A1
Убедились, что Юникод формулами листа передаётся? Ну, тогда и соответствующее решение вытекает: В ячейках свободного (скрытого) листа (а можно и сразу в именах) создаёте перечень необходимых значений с использованием символов Юникода и присваиваете этим ячейкам соответствующие имена. Например, ячейке, в которой написано C₂H₅OH, даёте имя C2H5OH (или любое другое, удобное Вам). А потом в формулах пишете не сами значения, а имена (но уже без кавычек, естественно). ------------------------------- Одно НО: в Юникоде существуют коды только надстрочных и подстрочных цифр от 0 до 9, а букв там, естественно, нет. Поэтому ФОРМУЛАМИ Вы сможете вывести в ячейку C₂H₅OH, но не сможете Pдейств.Alex_ST
Интересно получается. Если макросом вставлять символ, например ChrW(1161) - он вставляется, а если руками попробовать вбить Alt+1161 - то БОЛТ! В чём разница?
Интересно получается. Если макросом вставлять символ, например ChrW(1161) - он вставляется, а если руками попробовать вбить Alt+1161 - то БОЛТ! В чём разница?romanuil
Понятия не имею, т.к. никогда через Alt символы не ввожу (ну просто невозможно их запомнить даже в минимальном наборе) Мне проще было один раз и в Ворде, и в Ёкселе пяток макросов написать и забыть все эти цифры.
Понятия не имею, т.к. никогда через Alt символы не ввожу (ну просто невозможно их запомнить даже в минимальном наборе) Мне проще было один раз и в Ворде, и в Ёкселе пяток макросов написать и забыть все эти цифры. Alex_ST