Мелочный вопросик. Есть огромный прайс. Нужно из столбца №3 скопировать первых два слова в столбец 24. НО главная проблема заключается в том. что два слова нужно только там где есть кириллица. Там же где после первого слова стоит слово на английском языке, или скобка - то копироваться должно только первое слово.
Например: Акустика Logitech S150 Digital USB Speaker System (980-000029) OEM копируем, только:Акустика
а, содержимое ячейки: Карта памяти Kingston 4GB NAND Flash microSDHC SD2,0 Class 4 (SDC4/4GBSP) копируем:Карта памяти
Пример приложил
Мелочный вопросик. Есть огромный прайс. Нужно из столбца №3 скопировать первых два слова в столбец 24. НО главная проблема заключается в том. что два слова нужно только там где есть кириллица. Там же где после первого слова стоит слово на английском языке, или скобка - то копироваться должно только первое слово.
Например: Акустика Logitech S150 Digital USB Speaker System (980-000029) OEM копируем, только:Акустика
а, содержимое ячейки: Карта памяти Kingston 4GB NAND Flash microSDHC SD2,0 Class 4 (SDC4/4GBSP) копируем:Карта памяти
Function d(s$, Optional p$ = "[А-я ]+") Set R = CreateObject("vbscript.regexp") R.Pattern = p: R.Global = False Set m = R.Execute(s) d = m(0) End Function
Function d(s$, Optional p$ = "[А-я ]+") Set R = CreateObject("vbscript.regexp") R.Pattern = p: R.Global = False Set m = R.Execute(s) d = m(0) End Function
Function d(s$, Optional p$ = "[?-? ]+") Set R = CreateObject("vbscript.regexp") R.Pattern = p: R.Global = False Set m = R.Execute(s) d = m(0) End Function
Function d(s$, Optional p$ = "[?-? ]+") Set R = CreateObject("vbscript.regexp") R.Pattern = p: R.Global = False Set m = R.Execute(s) d = m(0) End Function
Посмотрите как в моем файле сделано - чем не подходит?
да, но тогда мне везде надо ставить копировать ячейку, и утягивать ее вниз. А там 10000 строк. поэтому и засунул в макрос. думал запускать под ALT+F8wwizard
Sub ddd() Dim s$, p$, i&, R, m For i = 2 To Range("C" & Rows.Count).End(xlUp).Row s = Cells(i, 3) p = "[А-я() ]+" Set R = CreateObject("vbscript.regexp") R.Pattern = p R.Global = False Set m = R.Execute(s) Cells(i, 24) = m(0) Next End Sub
Sub ddd() Dim s$, p$, i&, R, m For i = 2 To Range("C" & Rows.Count).End(xlUp).Row s = Cells(i, 3) p = "[А-я() ]+" Set R = CreateObject("vbscript.regexp") R.Pattern = p R.Global = False Set m = R.Execute(s) Cells(i, 24) = m(0) Next End Sub
Sub ddd() Dim s$, p$, i&, R, m For i = 2 To Range("C" & Rows.Count).End(xlUp).Row s = Cells(i, 3) p = "[А-я() ]+" Set R = CreateObject("vbscript.regexp") R.Pattern = p R.Global = False Set m = R.Execute(s) Cells(i, 24) = m(0) Next End Sub
Sub ddd() Dim s$, p$, i&, R, m For i = 2 To Range("C" & Rows.Count).End(xlUp).Row s = Cells(i, 3) p = "[А-я() ]+" Set R = CreateObject("vbscript.regexp") R.Pattern = p R.Global = False Set m = R.Execute(s) Cells(i, 24) = m(0) Next End Sub
А вот и за чего ошибка, он нашел это: http://prntscr.com/dryvn1 , хотя тут не застопорился: http://prntscr.com/dryw8n - может можно както добавить правило, чтоб если только одно слово в ячейке, то его пропускать, считать что там ничего нет?
А вот и за чего ошибка, он нашел это: http://prntscr.com/dryvn1 , хотя тут не застопорился: http://prntscr.com/dryw8n - может можно както добавить правило, чтоб если только одно слово в ячейке, то его пропускать, считать что там ничего нет?wwizard
Сообщение отредактировал wwizard - Пятница, 06.01.2017, 00:10