Страницы: 1
RSS
скрытие числа в ячейке
 
Добрый день, посдкажите как скрыть только числа в ячейке, левсимв или правсимв не подойдет, так как там сперва одна, цифра, потом две, потом три, и так может быть до 5 знаков например, нужно сделать уникальное значение, потом из них идет вся конструкция
 
КАК ОСТАВИТЬ В ЯЧЕЙКЕ ТОЛЬКО ЦИФРЫ ИЛИ ТОЛЬКО ТЕКСТ?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
Function WithOutDgt$(s)
  Dim re: WithOutDgt = s
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "^\d+"
  If re.test(s) Then WithOutDgt = re.Replace(s, "")
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Массивно
=MID(B1;MAX(IF(ISNUMBER(--LEFT(B1;ROW($1:$15)));ROW($1:$15)))+1;99)
И не забываем перевести функции, а то будете кричать что пишет ИМЯ.
По вопросам из тем форума, личку не читаю.
 
Код
=ИНДЕКС(SCAN("";ПСТР(B1;ПОСЛЕД(ДЛСТР(B1));1);LAMBDA(a;b;ЕСЛИ(--ЕЧИСЛО(ЗНАЧЕН(a))=0;a&b;b)));ДЛСТР(B1))

=ЕСЛИОШИБКА(ОБЪЕДИНИТЬ("";1;ФИЛЬТР(ПСТР(B1;ПОСЛЕД(ДЛСТР(B1));1);--ЕЧИСЛО(--ПСТР(B1;ПОСЛЕД(ДЛСТР(B1));1))=0));"")
Изменено: Тимофеев - 11.05.2022 17:04:03
 
И кто из вас СКРЫЛ числа в ячейке?  :D
 
Цитата
RAN написал:
И кто из вас СКРЫЛ числа в ячейке
Главное, чтобы потом РАСКРЫТЬ не просили :D
 
RAN, название моей ссылки можно считать нормальным названием темы  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
RAN, Msi2102, Jack Famous, Разговорчики в строю!!!!


У нас есть договоренность с котом , что к названию придираемся не слишком сильно.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ: У нас есть договоренность с котом , что к названию придираемся не слишком сильно
ай-яй-яй. В разрез с правилами пошли, однако, для упрощения своей работы  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
подскажите как этот макрос работает?! в простом варианте работает, а в рабочей области не хочет, не может быть глюк из за того что у меня 4 уровневый список, сам документ не могу прислать, он весит много, только скрин, разделиться должны  ячейки Е и попасть  в ячейку показатель, там сейчас имя стоит, выделено красным и желтым цветом
Код
Function WithOutDgt$(s)
  Dim re: WithOutDgt = s
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "^\d+"
  If re.test(s) Then WithOutDgt = re.Replace(s, "")
End Function
Изменено: denka1982 - 12.05.2022 14:56:23
 
Цитата
denka1982 написал:
сам документ не могу прислать,
Почитайте ТУТ п.2.3-2.4
 
Цитата
написал:
Цитата
denka1982 написал:
сам документ не могу прислать,
Почитайте  ТУТ  п.2.3-2.4
в реальной структуре его нереально прислать, там слишком много нюансов, по сути 4 уровневый выпадающий список, где в ячейке Е содержится уникальное значение, цифровой код, и в ячейке G нужто что б было тоже самое не без циферок вначале
 
не реально - значит разбирайтесь сами
(и с применением макроса в том числе)
удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
вроде бы понятно объяснил, что есть ячейка Е которую нужно перенести в ячейку G только без цифр
 
Цитата
denka1982 написал:
а в рабочей области не хочет
А у Вас этот макрос записан в той книге в которой Вы вносите изменения?
Изменено: Msi2102 - 12.05.2022 15:13:33
 
он в книге, переменная в ячейке G такая =WithOutDgt(E283)
Код
Function WithOutDgt$(s)
  Dim re: WithOutDgt = s
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "^\d+"
  If re.test(s) Then WithOutDgt = re.Replace(s, "")
End Function
Изменено: denka1982 - 12.05.2022 15:14:56
 
Цитата
denka1982 написал:
он в книге,
В какой? В той же, где нужен результат, т.е. рабочей
 
выше пример, там все работает, но там другие ячейки, я так думаю, а может и нет
 
Цитата
написал:
В какой? В той же, где нужен результат, т.е. рабочей
да в рабочей книге, именно там где должен быть
 
denka1982, объясню популярно: вы предлагаете найти "ошибку" в работе функции, хотя примера исходной строки и необходимого результата не даёте. Правильно Ігор Гончаренко вас лесом отправил  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
Sub EColumn()
  Dim e, r&
  e = Range([e1], Cells(Rows.Count, 5).End(xlUp))
  For r = 1 To UBound(e): e(r, 1) = WithOutDgt(e(r, 1)): Next
  [g1].Resize(UBound(e), 1) = e
End Sub

Function WithOutDgt$(s)
  Dim re: WithOutDgt = s
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "^\d+"
  If re.test(s) Then WithOutDgt = re.Replace(s, "")
End Function

скопируйте в стандартный модуль, выполните EColumn
Изменено: Ігор Гончаренко - 12.05.2022 15:22:15
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Возможно Вы его вставили в модуль листа, а нужно в обычный модуль
 
спасибо огромное, не было верхней части макроса, хотя не понятно как он работал в примере, в общем все работает теперь
Страницы: 1
Наверх