Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Зависание excel при сортировке по цвету
 
Добрый день. Подскажите пожалуйста, как справится с зависание excel при сортировке данных по цвету ячейки (цвет присваивается для уникальных значений при помощи условного форматирования). База на 250к строк с 7 столбцами. Заливка уникальных значений происходит достаточно быстро (меньше 30 сек), а вот при попытке сортировать результат, excel зависает еще на этапе способа сортировки. Вроде компьютер не самый древний, должен с такой задачей справляться на раз два, но нет. Помогите пожалуйста.

P.s Excel 2007, windows 7!

Спасибо.
Отделения значения по регулярке пользователя
 
Добрый вечер, уважаемые форумчане. В общем меня поперло на драйв и я тут решил написать простенький макрос который по пользовательскому regexp отделял бы значения в новый столбец. За основу взял старый скрипт. Сначала попытался сделать форму с текстовым полем на основе значения которого производить поиск по маске, но что-то пошло не так, форма не заработала =(

Скрытый текст

В последствии нашел немного иной способ который позволил бы делать тоже самое но без доп формы ( на основе "Application.InputBox"  ). Вроде все должно было сработать, но опять не судьба. Постоянно либо выдает ошибку типа "Type is mismatch" или ничего не происходит, то бишь значения не отделяются.

Скрытый текст

Помогите пожалуйста разобраться. Спасибо =)
Изменено: Aligatro - 30.09.2014 01:04:31
Как в VBA скрипт для excel вставить проверку по регулярному выражению?
 
Всем привет. Пожалуй перейду сразу к делу. В общем имеется скрипт (писал не я, помогли) который по определенному признаку (коды оператора, которые указаны в массиве) отделяет мобильные номера в таблице от городских. Скрипт работает отлично, но так как он опирается на скобки возле кода (050), иногда случаются ложные срабатывания. Я хотел бы попросить помощи у тех кто разбирается в VBA, помогите пожалуйста переделать скрипт так, что бы он детектировал номера не по скобочкам, а по следующему регулярному выражению
Цитата
\b\(?(039|050|063|066|067|068|091|092|093|094|095|096|097|098|099)\)?\s?\-?\d{3}\s?\-?\d{2}\s?\-?\d{2}\b
Единственное, я не совсем уверен в верности регулярки, кажется я ошибся с окончанием строки (\b).
Сам скрипт:
Код
Public Sub QWERT()
Dim R, C, i
Dim OD: Set OD = CreateObject("Scripting.Dictionary"
Dim T: Set T = CreateObject("Scripting.Dictionary"
Dim M(), RZ(), U() As String
Dim MB
M = Array(39, 50, 63, 66, 67, 68, 91, 92, 93, 94, 95, 96, 97, 98, 99)

'закидываем в словарь префиксы
For R = 0 To UBound(M)
    T("(0" & M(R) & "" = 1
Next R

'считываем в маассив данные
With Ëèñò1
    M = .Range("A1:G" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
    ReDim RZ(1 To UBound(M), 1 To UBound(M, 2) + 2)
    
'перебираем все строки массива
    For R = 1 To UBound(M)
'    отделяеем название фирмы
        If InStr(1, M(R, 1), "," > 0 Then
            C = Split(M(R, 1), ","(0)
            RZ(R, 1) = C
            RZ(R, 2) = Replace(M(R, 1), C & ",", ""
        Else
            RZ(R, 1) = M(R, 1)
        End If
            RZ(R, 3) = M(R, 2)
' ищем мобильные операторы

            U = Split(M(R, 3), ","
            For i = 0 To UBound(U)
            Debug.Print i, UBound(U), U(i), R
                If T.Exists(Left(U(i), 5)) Then
                    RZ(R, 4) = IIf(RZ(R, 4) = "", U(i), RZ(R, 4) & "," & U(i))
                Else
                    RZ(R, 5) = IIf(RZ(R, 5) = "", U(i), RZ(R, 5) & "," & U(i))
                End If
            Next i
            For i = 4 To UBound(M, 2)
                RZ(R, i + 2) = M(R, i)
            Next i
    Next R
    Worksheets.Add
    Range("A1".Resize(UBound(RZ), UBound(RZ, 2)) = RZ
    Cells.Columns.AutoFit
    Cells.Rows.AutoFit

End Sub
Кстати, если это возможно было бы кайфово, если бы при отборе названий фирмы, можно было бы опираться не на первую запятую а на последнюю в строке.

Большое спасибо.
Изменено: Aligatro - 28.09.2014 00:09:57
Разделение строки в разные столбцы по признаку
 
Доброго времени суток, дорогие форумчане. Перейду сразу к описанию проблемы. В общем имеется большая база данных (более 70тыс строк). В этой базе по возможности мне необходимо сделать следующее.В столбце с телефонными номерами компании (от 1 до 5 номеров), нужно выделить и распределить в отдельный столбец моб. номера телефона, по коду оператору. Сами номера слишком неоднородны и моб. телефон может находится как на первом месте в строке так и на 3 (то есть просто разделить по столбцам не получится). Меня интересует, можно ли по определенному словарю с кодами операторов (039,050,063,066,067,068,091,092,093,094,095,096,097,098,099 ) выделить и отделить все значение которые содержат данные 3 цифры в начале номера.
  1. Можно ли разделить стандартными средствами строку на столбцы только по первому признаку? То бишь в строке есть несколько запятых, но мне нужно что бы строка отделялась только по первой запятой, без учета последующих. В примере, мне необходимо отделить Название компании и ее тип регистрации (ЧП, ПП, ТОВ, ООО, и т.д)
  2. Насколько я понимаю, exсel не умеет работать с regexp, посему меня интересует, есть ли какие-то аналоги внутри таблиц, при помощи которых можно было бы написать регулярное выражение?
P.s В принципе для меня не имеет значение в какой программе можно выполнить подобные задачи, если у вас на примете есть спец софт который заточен именно под такие операции, посоветуйте пожалуйста, я могу воспользоваться им и в последствии перенести инфу обратно в таблицу.

Заранее приношу извинения за сумбурность мыслей и хочу выразить огромную благодарность всем кто откликнится. Большое спасибо.
Страницы: 1
Наверх