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

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Найти минимальную цифру в целом числе - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найти минимальную цифру в целом числе (Макросы Sub)
Найти минимальную цифру в целом числе
ikki Дата: Суббота, 30.11.2013, 12:43 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
всем привет.
придумал (или "придумал"?) такой код:
[vba]
Код
Sub test3()
      Dim a() As Byte
      t = 1684567939: a = CStr(t)
      Debug.Print Application.Max(a) - 48
End Sub
[/vba]
это для максимальной.
можно ли аналогично найти минимальную цифру?
простая замена Max на Min, само собой, "не катит" - в полученном массиве есть нули.

пс. варианты с циклом не интересуют. ^_^


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 30.11.2013, 12:54
 
Ответить
Сообщениевсем привет.
придумал (или "придумал"?) такой код:
[vba]
Код
Sub test3()
      Dim a() As Byte
      t = 1684567939: a = CStr(t)
      Debug.Print Application.Max(a) - 48
End Sub
[/vba]
это для максимальной.
можно ли аналогично найти минимальную цифру?
простая замена Max на Min, само собой, "не катит" - в полученном массиве есть нули.

пс. варианты с циклом не интересуют. ^_^

Автор - ikki
Дата добавления - 30.11.2013 в 12:43
ikki Дата: Суббота, 30.11.2013, 12:49 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
ппс. есть ещё такой вариант:
[vba]
Код
Sub test()
     t = "63956484684566486"
     s = "({" & Join(Split(Trim(Format(t, "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @"))), ";") & "})"
     nMax = Evaluate("max" & s): nMin = Evaluate("min" & s)
     MsgBox nMin & vbCr & nMax
End Sub
[/vba]

не нравится >(


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеппс. есть ещё такой вариант:
[vba]
Код
Sub test()
     t = "63956484684566486"
     s = "({" & Join(Split(Trim(Format(t, "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @"))), ";") & "})"
     nMax = Evaluate("max" & s): nMin = Evaluate("min" & s)
     MsgBox nMin & vbCr & nMax
End Sub
[/vba]

не нравится >(

Автор - ikki
Дата добавления - 30.11.2013 в 12:49
nilem Дата: Суббота, 30.11.2013, 13:26 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
[vba]
Код
Sub test4()
      Dim a() As Byte, t As Long
      t = 265456783
      a = CStr(t)
      MsgBox Application.Max(a) - 48
      MsgBox Application.Small(a, Len(CStr(t)) + 1) - 48
End Sub
[/vba]
вот это a = CStr(t) просто удивительно


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Суббота, 30.11.2013, 13:27
 
Ответить
Сообщение[vba]
Код
Sub test4()
      Dim a() As Byte, t As Long
      t = 265456783
      a = CStr(t)
      MsgBox Application.Max(a) - 48
      MsgBox Application.Small(a, Len(CStr(t)) + 1) - 48
End Sub
[/vba]
вот это a = CStr(t) просто удивительно

Автор - nilem
Дата добавления - 30.11.2013 в 13:26
ikki Дата: Суббота, 30.11.2013, 13:32 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Application.Small
вот что значит не формулист я :)
совсем вылетела из головы функция наименьший.

спасибо, Николай.
хороший вариант.

пс. вместо Len(CStr(t)) + 1 можно написать UBound(a) / 2 + 2
от Option Base такой вариант зависеть не будет.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 30.11.2013, 13:37
 
Ответить
Сообщение
Application.Small
вот что значит не формулист я :)
совсем вылетела из головы функция наименьший.

спасибо, Николай.
хороший вариант.

пс. вместо Len(CStr(t)) + 1 можно написать UBound(a) / 2 + 2
от Option Base такой вариант зависеть не будет.

Автор - ikki
Дата добавления - 30.11.2013 в 13:32
RAN Дата: Суббота, 30.11.2013, 18:30 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
 Dim a() As Byte
   a = CStr(t)

А вот это очень понравилось!


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
 Dim a() As Byte
   a = CStr(t)

А вот это очень понравилось!

Автор - RAN
Дата добавления - 30.11.2013 в 18:30
ikki Дата: Суббота, 30.11.2013, 18:47 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
не знаю, чей приоритет у "этого".
я увидел впервые у Казанского.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениене знаю, чей приоритет у "этого".
я увидел впервые у Казанского.

Автор - ikki
Дата добавления - 30.11.2013 в 18:47
RAN Дата: Суббота, 30.11.2013, 18:56 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
не знаю, чей приоритет у "этого"

Есть подозрение, что у разработчиков Excel. :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
не знаю, чей приоритет у "этого"

Есть подозрение, что у разработчиков Excel. :D

Автор - RAN
Дата добавления - 30.11.2013 в 18:56
Саня Дата: Воскресенье, 01.12.2013, 18:56 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
с 10-й страницы

ps
кстати, советую после Уокенбаха
... потом Грин, Боуви, Буллен... там еще сильнее deal
 
Ответить
Сообщениес 10-й страницы

ps
кстати, советую после Уокенбаха
... потом Грин, Боуви, Буллен... там еще сильнее deal

Автор - Саня
Дата добавления - 01.12.2013 в 18:56
nilem Дата: Понедельник, 02.12.2013, 09:04 | Сообщение № 9
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
... потом Грин, Боуви, Буллен...

это даже вместо Уокенбаха (если надо, у меня есть на англ.)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
... потом Грин, Боуви, Буллен...

это даже вместо Уокенбаха (если надо, у меня есть на англ.)

Автор - nilem
Дата добавления - 02.12.2013 в 09:04
ikki Дата: Понедельник, 02.12.2013, 09:51 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата
(если надо,..
надо.
на мыло, если можно.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата
(если надо,..
надо.
на мыло, если можно.

Автор - ikki
Дата добавления - 02.12.2013 в 09:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Найти минимальную цифру в целом числе (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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