Версия для слабовидящих
Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

 

= Мир MS Excel/Как вставить надстрочную двойку макросом? - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как вставить надстрочную двойку макросом?
Alex_ST Дата: Вторник, 17.06.2014, 16:42 | Сообщение № 1
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Умучился я в расчётных таблицах в ручную менять форматы так чтобы было и красиво, и формулы считали.
Налепил себе несколько процедур для форматирования ячеек в наиболее нужные мне виды.
Ну, типа:

А тут понадобилось мне работать с квадратными миллиметрами.
Решил быстренько слепить по аналогии.
А не тут-то было! Не хочет у меня VBE понимать надстрочную двойку! Как ни бился, а вместо мм2 получается мм?, т.к. ввести в код 2 никак не удаётся.
При этом по Alt+0176 символ "градус", например, добавляется, а по Alt+0178 "квадрат" - нет
Что-то у меня переклин настал... Как эти долбаные символы ввести? Думал их Chr на листе функцией =КОДСИМВ узнать, так 63 возвращает...



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 17.06.2014, 16:43
 
Ответить
СообщениеУмучился я в расчётных таблицах в ручную менять форматы так чтобы было и красиво, и формулы считали.
Налепил себе несколько процедур для форматирования ячеек в наиболее нужные мне виды.
Ну, типа:

А тут понадобилось мне работать с квадратными миллиметрами.
Решил быстренько слепить по аналогии.
А не тут-то было! Не хочет у меня VBE понимать надстрочную двойку! Как ни бился, а вместо мм2 получается мм?, т.к. ввести в код 2 никак не удаётся.
При этом по Alt+0176 символ "градус", например, добавляется, а по Alt+0178 "квадрат" - нет
Что-то у меня переклин настал... Как эти долбаные символы ввести? Думал их Chr на листе функцией =КОДСИМВ узнать, так 63 возвращает...

Автор - Alex_ST
Дата добавления - 17.06.2014 в 16:42
Rioran Дата: Вторник, 17.06.2014, 16:53 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Alex_ST, здравствуй.

Применительно к ячейке, где только три твоих символа мм2:

.Characters(Start:=3, Length:=1).Font.Superscript = True



Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеAlex_ST, здравствуй.

Применительно к ячейке, где только три твоих символа мм2:

[vba]
.Characters(Start:=3; Length:=1).Font.Superscript = Тrue
[/vba]

Автор - Rioran
Дата добавления - 17.06.2014 в 16:53
Alex_ST Дата: Вторник, 17.06.2014, 17:06 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Разница между символом надстрочной юникодовской двойки и Superscript-овским форматом обычной двойки огромная!
Да и в пользовательском формате суперскрипт не укажешь никак.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеРазница между символом надстрочной юникодовской двойки и Superscript-овским форматом обычной двойки огромная!
Да и в пользовательском формате суперскрипт не укажешь никак.

Автор - Alex_ST
Дата добавления - 17.06.2014 в 17:06
Саня Дата: Вторник, 17.06.2014, 17:08 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
делал когда-то...
К сообщению приложен файл: _---.xlsb (17.5 Kb)
 
Ответить
Сообщениеделал когда-то...

Автор - Саня
Дата добавления - 17.06.2014 в 17:08
Rioran Дата: Вторник, 17.06.2014, 17:12 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
По заданию - да, не правильно понял, что нужно.

Саня, крутой файл.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Вторник, 17.06.2014, 17:13
 
Ответить
СообщениеПо заданию - да, не правильно понял, что нужно.

Саня, крутой файл.

Автор - Rioran
Дата добавления - 17.06.2014 в 17:12
Alex_ST Дата: Вторник, 17.06.2014, 17:15 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Саня, а текст процедурки выложить можешь? У меня собаки-сисадмины на работу файлы с макросами не пускают... Боятся, дебилоиды, макровирусов.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеСаня, а текст процедурки выложить можешь? У меня собаки-сисадмины на работу файлы с макросами не пускают... Боятся, дебилоиды, макровирусов.

Автор - Alex_ST
Дата добавления - 17.06.2014 в 17:15
Rioran Дата: Вторник, 17.06.2014, 17:29 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Alex_ST, Александр, видимо, отошёл. Выложу за него из его же файла:

Option Explicit

Function СИМВОЛ_РАСШ(i As Integer, bSub As Boolean) As String
    Dim sI As String
    sI = CStr(i)

    Dim j As Byte, sTemp As String, sCh As String * 1, byt As Byte
    sTemp = ""
    For j = 1 To Len(sI)
        sCh = Mid(sI, j, 1)
        byt = CByte(sCh)
        sTemp = sTemp & IIf(bSub, _
                            getSubSymbol(byt), _
                            getSuperSymbol(byt))
    Next j
    СИМВОЛ_РАСШ = sTemp
End Function

Private Function getSubSymbol(i As Byte) As String
    getSubSymbol = ChrW(i + 8320)
End Function

Private Function getSuperSymbol(i As Byte) As String
    Dim iW As Integer
    Select Case i
        Case 1: iW = 185
        Case 2, 3: iW = i + 176
        Case 0, Is > 3: iW = i + 8304
    End Select
    getSuperSymbol = ChrW(iW)
End Function



Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеAlex_ST, Александр, видимо, отошёл. Выложу за него из его же файла:

[vba]
Option Explicit Function СИМВОЛ_РАСШ(i As Integer, bSub As Boolean) As String      Dim sI As String      sI = CStr(i)      Dim j As Byte, sTemp As String, sCh As String * 1, byt As Byte      sTemp = ""      For j = 1 To Len(sI)          sCh = Mid(sI, j, 1)          byt = CByte(sCh)          sTemp = sTemp & IIf(bSub, _                              getSubSymbol(byt), _                              getSuperSymbol(byt))      Next j      СИМВОЛ_РАСШ = sTemp End Function Private Function getSubSymbol(i As Byte) As String      getSubSymbol = ChrW(i + 8320) End Function Private Function getSuperSymbol(i As Byte) As String      Dim iW As Integer      Select Case i          Case 1: iW = 185          Case 2, 3: iW = i + 176          Case 0, Is > 3: iW = i + 8304      End Select      getSuperSymbol = ChrW(iW) End Function
[/vba]

Автор - Rioran
Дата добавления - 17.06.2014 в 17:29
krosav4ig Дата: Вторник, 17.06.2014, 19:16 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
При этом по Alt+0176 символ "градус", например, добавляется, а по Alt+0178 "квадрат" - нет

чтобы ввелся квадрат, нужно чтобы раскладка была английская, иначе вводится украинская І


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 17.06.2014, 19:17
 
Ответить
Сообщение
При этом по Alt+0176 символ "градус", например, добавляется, а по Alt+0178 "квадрат" - нет

чтобы ввелся квадрат, нужно чтобы раскладка была английская, иначе вводится украинская І

Автор - krosav4ig
Дата добавления - 17.06.2014 в 19:16
Alex_ST Дата: Вторник, 17.06.2014, 21:01 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
чтобы ввелся квадрат, нужно чтобы раскладка была английская, иначе вводится украинская І
это я слышал и, естественно, пробовал.
И так, и сяк то, что вводится, выглядит как І
А уж украинская это І или английская І , разбираться я не стал, ибо мне это пофигу, т.к. это явно не 2 :)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
чтобы ввелся квадрат, нужно чтобы раскладка была английская, иначе вводится украинская І
это я слышал и, естественно, пробовал.
И так, и сяк то, что вводится, выглядит как І
А уж украинская это І или английская І , разбираться я не стал, ибо мне это пофигу, т.к. это явно не 2 :)

Автор - Alex_ST
Дата добавления - 17.06.2014 в 21:01
Alex_ST Дата: Вторник, 17.06.2014, 21:43 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Саня, позволь тебе залепить в репу ! :)
Очень поучительный и наглядный пример. Всё время я про эти ChrW забываю (наверное, потому, что не совсем понимаю) :(
Всё получилось.
Вот, например, для мм2

Sub FORMAT_mm2()
    With ActiveWindow.RangeSelection: .NumberFormat = "#,##0"" мм""" & ChrW(178): .Select: End With
End Sub




С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 18.06.2014, 08:38
 
Ответить
СообщениеСаня, позволь тебе залепить в репу ! :)
Очень поучительный и наглядный пример. Всё время я про эти ChrW забываю (наверное, потому, что не совсем понимаю) :(
Всё получилось.
Вот, например, для мм2[vba]
Sub FORMAT_mm2()       With ActiveWindow.RangeSelection: .NumberFormat = "#,##0"" мм""" & ChrW(178): .Select: End With End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 17.06.2014 в 21:43
ximki-vinki Дата: Пятница, 19.09.2014, 11:05 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Отличный макрос, спасибо.
Но есть вопрос.
Как те же махинации проделать текстом? Понимаю, что нужно изменить в функции, что бы он работал не с цифрами, а с текстом. Но боюсь все сломать
 
Ответить
СообщениеОтличный макрос, спасибо.
Но есть вопрос.
Как те же махинации проделать текстом? Понимаю, что нужно изменить в функции, что бы он работал не с цифрами, а с текстом. Но боюсь все сломать

Автор - ximki-vinki
Дата добавления - 19.09.2014 в 11:05
Alex_ST Дата: Пятница, 19.09.2014, 12:24 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
ximki-vinki, что Вы имели в виду?
Если просто символы вводить юникодовские в текст, то макрорекордер Вам поможет.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщениеximki-vinki, что Вы имели в виду?
Если просто символы вводить юникодовские в текст, то макрорекордер Вам поможет.

Автор - Alex_ST
Дата добавления - 19.09.2014 в 12:24
ximki-vinki Дата: Пятница, 19.09.2014, 12:35 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
У меня текст находиться в формуле, и форматирование шрифта к нему не применяется.
Опубликованный здесь макрос работает только с числами.
В макросах я не силен, вот и прошу помощи.
Модератор:
Создавайте свою тему и прикладывайте пример в Excel. И тут еще почитайте. Внимательно почитайте.
 
Ответить
СообщениеУ меня текст находиться в формуле, и форматирование шрифта к нему не применяется.
Опубликованный здесь макрос работает только с числами.
В макросах я не силен, вот и прошу помощи.
[moder]Создавайте свою тему и прикладывайте пример в Excel. И тут еще почитайте. Внимательно почитайте.

Автор - ximki-vinki
Дата добавления - 19.09.2014 в 12:35
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!