Страницы: 1
RSS
скрипт перенос текста в скобках
 
Здравствуйте уважаемые программисты !  
Помогите пожалуйста решить элементарную задачку -  
как из столбца A с текстом скопировать в соседний столбец B текст из А в скобках  
 
файл прилагаю
 
файл прилагаю
 
{quote}{login=alan}{date=17.07.2012 12:14}{thema=скрипт перенос текста в скобках}{post}... решить элементарную задачку... {/post}{/quote}  
Off Куда еще элементарнее - бурсакам нет охоты, некогда и вообще  зачем мне этот элементарный напряг с каким-то VBA: есть - моя хочуха, а делают пусть они - элементарщики-эксельщики...
 
ниче не понял - это помощь чтоли - обозвать другого причем анонимно с "глубоким смыслом" типа мы других поучим - устал или раздражен товарищ видимо  
 
я попросил помощи потому что вижу что форум сделан  для таких чайников как я
 
Вот пожалуйста:  
 
=ПСТР(A1;НАЙТИ("(";A1;1)+1;НАЙТИ(")";A1;1)-1-НАЙТИ("(";A1;1))
 
спасибо работает ! как формула - а как в скрипте сделать такую функцию ?
 
Это вы зря - на Планете не только чайники, но даже бойлеры водятся. И им тоже порой помощь требуется... И помогают, причем всем ТЕМ, кто САМ хоть что-то пытается сделать... А делать за кое-кого кое-что даже элементарное - это не помощь... Кстати, как вы определили элементарность своего задания, если в VBA...  
ps Вот и аноним - Некто/Никто - предлагает формульный аналог вашего скрипта - взять все, что есть между скобками... Может попробуете записать рекордером?.. ;) -41094-
 
Как-то так:  
 
   ActiveCell.FormulaR1C1 = _  
"=MID(RC[-1],FIND(""("",RC[-1],1)+1,FIND("")"",RC[-1],1)-1-FIND(""("",RC[-1],1))"
 
если не формулами, то в коде можно использовать instr/Instrrev  
j="(skobka)" 'текст для ячейки j=Range("A1").value  
y = instr(1, j, "(") , номер символа открыв скобки  
z = instrrev(j, ")")- y-1 ' номер последней скобки - номер начала - 1  
x=mid(j,y+1,z) 'все что между  
 
 
#62277#
 
рекодером записал - за совет спасибо - все получилось.  
Благодарю всех откликнувшихся.
 
А если макросом, то:  
Mid(txt, InStr(1, txt, "(") + 1, InStrRev(txt, ")") - InStr(1, txt, "(") - 1)
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Или так:  
 
 
Sub Perenos()  
   Dim a(), i&  
   a = [a1].CurrentRegion.Columns(1).Value
   ReDim b(1 To UBound(a), 1 To 1)  
   For i = 1 To UBound(a)  
       b(i, 1) = Split(Split(a(i, 1), "(")(1), ")")(0)  
   Next  
   [b1].Resize(UBound(b), 1) = b
End Sub
 
Вообще-то второй массив не нужен (хотя кажется с двумя массивами чуть быстрее :)):  
 
Sub Perenos()  
   Dim a(), i&  
   a = [a1].CurrentRegion.Columns(1).Value
   For i = 1 To UBound(a)  
       a(i, 1) = Split(Split(a(i, 1), "(")(1), ")")(0)  
   Next  
   [b1].Resize(UBound(a), 1) = a
End Sub
Страницы: 1
Читают тему
Наверх