Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 След.
Подставить в тексте букву возле цифры
 
вариант функции
Код
 Function aa(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = "\d": aa = .Replace(t, "д $&")
  End With
End Function
Изменено: кузя1972 - 28 Янв 2019 23:24:36
Разделение на столбцы с помощью формулы
 
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";100));100))

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;"-";ПОВТОР(" ";100));100;100))
Изменено: кузя1972 - 27 Янв 2019 04:08:46
Занести в массив примечания (не циклом), пробовала и так и сяк, а может просто нельзя
 
Андрей VG ,добрый вечер,прочитайте вышеуказанную страницу 282 ,-я частично процитировал автора,для привлечения внимания интересующихся к исключению,нетипичному поведению функции,которая скорее напоминает подпрограмму.
Занести в массив примечания (не циклом), пробовала и так и сяк, а может просто нельзя
 
звездочка яркая,если Вы интересуетесь примечаниями,почитайте с.282 "Microsoft Excel 2013.Профессиональное программирование на VBA,2014
,изд. Диалектика,-пример автора,
Джона Уокенбаха-нетипичный случай в VBA использования функции,(ошибка в VBA или преднамеренность)-
когда в функции нет конструкции типа ModifyComent=
Код
Function ModifyComent(cell As Range,Cmt$)
  cell.Coment.Text cmt
End Function
Изменено: кузя1972 - 24 Янв 2019 21:55:25
Как удалить символ внутри числа
 
вариант функций


Код
Function aa&(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = "(\d+)\+(\d+)": aa = .Replace(t, "$1$2")
  End With
End Function

Function bb&(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = "\+": bb = .Replace(t, "")
  End With
End Function
Изменено: кузя1972 - 18 Янв 2019 04:04:22
Определить квартал даты
 
ещё вариант формулы
 
Код
=РИМСКОЕ(ОКРУГЛВВЕРХ(МЕСЯЦ(I5)/3;0))&" Квартал "&ГОД(I5)
Изменено: кузя1972 - 15 Янв 2019 20:00:32
Составить формулу, которая возле чисел убирает букву
 
вариант функции
Код
  Function aa#(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = "\$\S+": aa = Replace(Mid(.Execute(t)(0), 2), ".", ",")
  End With
End Function
Изменено: кузя1972 - 15 Янв 2019 19:17:36
Преобразовать "1 октября 2018г." в дату
 
вариант функции в столбце E
Код
Function aa(t) As Date
t = Replace(t, "г.", "")
 aa = DateValue(t)
End Function
Изменено: кузя1972 - 13 Янв 2019 22:48:04
Разделить название книги и автора
 
вариант функции
Код
Function bb(t$, Optional i& = 0)
 With CreateObject("VBScript.RegExp"): .Pattern = "[^/]+": .Global = True
  If InStrRev(t, "/") Then bb = Trim(.Execute(t)(i)) Else bb = t
 End With
End Function
n
Изменено: кузя1972 - 11 Янв 2019 14:16:14
Извлечь из URL информацию между поледним / и первым -
 
вариант функций
Код
Function cc$(t$)
  cc = "(" & Split(StrReverse(Split(StrReverse(t), "/", 2)(0)), "-")(0) & ")"
End Function
Код
Function aa$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[^/]+": .Global = True
   aa = .Execute(t)(.Execute(t).Count - 1): .Pattern = "[^-]+": aa = "(" & .Execute(aa)(0) & ")"
 End With
End Function
Код
Function bb$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[^/]+": .Global = True
  bb = "(" & Split(.Execute(t)(.Execute(t).Count - 1), "-")(0) & ")"
 End With
End Function
Изменено: кузя1972 - 5 Янв 2019 00:05:54
«Выдёргивание» в VBA из текстовой строки даты
 
ещё вариант функции в C1

 
Код
Function aaa(t$) As Date
 With CreateObject("VBScript.RegExp"): .Pattern = "от (.+) г\."
  aaa = DateValue(.Execute(t)(0).Submatches(0))
 End With
End Function
Изменено: кузя1972 - 9 Дек 2018 21:21:24
Вычленить из середины текста модель телефона
 
в ответ на #18:если у Вас,например, новая книга Excel-сохранить как Книга excel 97-2003 или как файл с поддержкой макросов,затем,например Вид-Макрос-Запись макроса-Остановить запись.Вслед за макросом, Макрос1 -скопировать текст функции,например zz.
Применяйте как обычную формулу в ячейке: =zz(A1),например,для ячейки A1.
Изменено: кузя1972 - 10 Дек 2018 05:36:13
Вычленить из середины текста модель телефона
 
UDF в столбце C
Код
Function zz$(t$)
   With CreateObject("VBScript.RegExp"): .Pattern = " \w+ \w+ \w+": zz = Trim(.Execute(t)(0))
  End With
End Function
Изменено: кузя1972 - 8 Дек 2018 16:29:10
Удалить весь текст в столбце
 
вариант макроса,кнопка test

Код
Sub test()
     Dim z, t$, i&: z = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Value
  With CreateObject("VBScript.RegExp"): .Pattern = "[а-яёa-z]+": .Global = True: .IgnoreCase = True
    For i = 1 To UBound(z): t = z(i, 1): z(i, 1) = .Replace(t, ""): Next
   Range("A1").Resize(UBound(z), 1).Value = z
   End With
End Sub
Изменено: кузя1972 - 5 Дек 2018 00:21:01
Удалить весь текст в столбце
 
Для файл-примера #1,вариант UDF в столбце D

Код
 Function aa$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[а-яёa-z]+": .Global = True: .IgnoreCase = True
   aa = .Replace(t, "")
 End With
End Function
Изменено: кузя1972 - 4 Дек 2018 23:57:20
Разделить по столбцам текст: до предпоследнего пробела и два последних слова
 
вариант трех UDF
Код
Function aa$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "\S+": .Global = True
   aa = .Execute(t)(.Execute(t).Count - 2) & " " & .Execute(t)(.Execute(t).Count - 1)
 End With
End Function
Код
Function bb$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "\S+\s\S+$"
   bb = .Execute(t)(0)
 End With
End Function
Код
Function vv$(t$)
  vv = StrReverse(Split(StrReverse(t), " ", 3)(1)) & " " & StrReverse(Split(StrReverse(t), " ", 3)(0))
End Function
Изменено: кузя1972 - 3 Дек 2018 22:43:12
Удалить все символы с артикулом и тире
 
Код
Function aa$(t$)
    With CreateObject("vbscript.regexp"): .Pattern = ".+(?=-f-)": aa = .Execute(t)(0)
    End With
End Function

Function bbb$(t$)
    With CreateObject("vbscript.regexp"): .Pattern = "-f-.+": bbb = .Replace(t, "")
    End With
End Function

Function ccc$(t$)
    With CreateObject("vbscript.regexp"): .Pattern = "-": .Global = True
    ccc = Left(t, .Execute(t)(.Execute(t).Count - 2).FirstIndex)
    End With
End Function

Изменено: кузя1972 - 2 Дек 2018 00:08:03
Как в ячейке разбить длинное число пробелами
 
вариант UDF
Код
Function bbb$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "(\d)(\d{2})(\d{3})(\d{2})(\d{2})(\d)"
   bbb = .Replace(t, "$1 $2 $3 $4 $5 $6")
 End With
End Function
Изменено: кузя1972 - 1 Дек 2018 00:40:04
Поиск в тексте хХ (рядом строчная и заглавная) и вставка между ними символа
 
ещё вариант UDF в C1
 
Код
Function bbb$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "([a-z])([A-Z])"
   bbb = .Replace(t, "$1 $2")
 End With
End Function
Изменено: кузя1972 - 29 Ноя 2018 20:20:09
Подставлять знак + кроме слов меньше 3 символов
 
вариант для файл-примера из #6 в D4

Код
Function zzz$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:[^а-яё\w]|^)[а-яё\w]{3,}(?=[^а-яё\w]|$)"
 zzz = .Replace(t, "+$&"): zzz = Replace(zzz, "+ ", " +")
  End With
End Function 
Изменено: кузя1972 - 26 Ноя 2018 17:01:32
Извлечь значение между предпоследней и последней запятыми, RegIx
 
в теме нет файл-примера,ещё вариант в K1
Код
Function yyy$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "([^,]+),([^,]+),([^,]+)$": .Global = True
  yyy = .Replace(t, "$2")
 End With
End Function
Изменено: кузя1972 - 24 Ноя 2018 23:28:07
Извлечь значение между предпоследней и последней запятыми, RegIx
 
ещё вариант
Код
Function uuu$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "[^,]+(?=,[^,]+$)"
  uuu = .Execute(t)(0)
 End With
End Function
Изменено: кузя1972 - 24 Ноя 2018 22:19:26
Извлечь значение между предпоследней и последней запятыми, RegIx
 
ещё вариант UDF в D1 или UDF vvv
Код
Function vvv$(t$)
  vvv = StrReverse(Split(StrReverse(t), ",", 3)(1))
End Function
Код
 Function bbb$(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = "[^,]+": .Global = True
       bbb = .Execute(t)(.Execute(t).Count - 2)
  End With
End Function
Изменено: кузя1972 - 24 Ноя 2018 21:59:25
Сложение чисел в ячейке с использованием +
 
вариант UDF в D1
Код
 Function bbb#(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+(?:\.)?(?:\d+)?": .Global = True
 For i = 0 To .Execute(t).Count - 1: bbb = bbb + Replace(.Execute(t)(i), ".", ","): Next
End With
End Function
Изменено: кузя1972 - 20 Ноя 2018 00:42:47
Подставлять знак + кроме слов меньше 3 символов
 
для файл-примера из #1 ещё вариант UDF в G2
Код
Function aaa$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:\s|^)[а-яё\w]{3,}(?=\s|$)"
 aaa = .Replace(t, "+$&")
  End With
End Function
Изменено: кузя1972 - 16 Ноя 2018 22:22:34
Подставлять знак + кроме слов меньше 3 символов
 
вариант UDF в D2
 
Код
Function yyy$(t$)
   With CreateObject("VBScript.RegExp"): .Global = True: .IgnoreCase = True
    .Pattern = "(?:[^а-яё\w]|^)[а-яё\w]{3,}(?=[^а-яё\w]|$)"
 yyy = .Replace(t, "+$&")
  End With
End Function
Изменено: кузя1972 - 15 Ноя 2018 16:09:01
Сколько учеников получили не менее двух пятерок?
 
вариант UDF в H4
 
Код
Function aaa&(r As Range)
Dim z, i&, j&, k&: z = r.Value
 For i = 1 To UBound(z): k = 0
  For j = 1 To UBound(z, 2)
   If z(i, j) = 5 Then k = k + 1
  Next
   If k >= 2 Then aaa = aaa + 1
 Next
End Function
Изменено: кузя1972 - 15 Ноя 2018 08:35:14
Вычленить 11-значные номера телефонов
 
вариант UDF в столбцах B C D
Код
Function bbb$(t$, i&)
 With CreateObject("VBScript.RegExp"): .Pattern = "\d{11}": .Global = True
        If .test(t) And .Execute(t).Count >= i Then bbb = .Execute(t)(i - 1)
 End With
End Function
Изменено: кузя1972 - 10 Ноя 2018 18:14:48
Удаление из текста фразы, указанной в другом столбце
 
ещё вариант формулы в столбце C
Код
 = СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ($A2;ПРОПИСН(B2);ПОВТОР(" ";99));99))
Изменено: кузя1972 - 9 Ноя 2018 20:17:24
Удаление из текста фразы, указанной в другом столбце
 
вариант UDF в столбце C и UDF uuu
Код
Function uuu$(t$, s$)
 uuu = Split(t, UCase(s))(1)
End Function
 
Код
Function vvv$(t$, s$)
  With CreateObject("VBScript.RegExp"): .Pattern = s & "(.+)$": .IgnoreCase = True
        If .test(t) Then vvv = .Execute(t)(0).Submatches(0)
  End With
End Function
Изменено: кузя1972 - 9 Ноя 2018 11:55:58
Страницы: 1 2 3 4 5 6 7 След.
Наверх