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

Страницы: 1
Разбивка данных в ячейке построчно, В таблице (более 700 тыс.строк) в каждой ячейке указаны номера телефонов через запятую, необходимо каждый номер указать на отдельной строке.
 
Добрый вечер!
Есть таблица с множеством данных. В каждой ячейке указано по несколько номеров телефонов. Задача состоит в том, чтобы преобразовать таблицу так, чтобы каждый номер телефона указан был на отдельной строке (образец прикреплен). Кроме этого после преобразования таблицы необходимо перемешать номера телефонов, чтобы они указаны были не по порядку. Подскажите, пожалуйста, возможно это сделать без макросов?
Отредактировать макрос для вставки из ячейки только мобильных номеров, исключая городские.
 

Имеются файлы (по количеству около 900 тыс.строк, объемы большие у всех файлов), там записан макрос, который при поиске нужной информации вставляет в свободный столбец номер мобильного телефона.

Т.е. в столбцах H и K есть данные, в столбец А вставляются каждый раз новые данные, при помощи макроса если есть совпадения ячейки А с H, то номер мобильного телефона из K копируется в столбец F.

Но возникла проблема: в столбце К присутствуют теперь номера какие-то со скобками, какие-то без, и коды городов тоже бывают и трехзначные и четырехзначные. И мне макрос выдает только мобильные номера, которые без скобок, а также еще городские номера.

Задача состоит в том, чтобы изменить макрос в соответствии с новыми данными, т.е. мне надо, чтобы в столбец  F попадали только мобильные номера, никаких городских телефонов там не должно быть.

Очень прошу подсказать, как это сделать.

Файл-образец прикладываю и макрос отдельно тоже.

Макрос:

Код
Sub Telefon()    Dim arr(), arr2(), Dic As Object, i&, iKey$    With Worksheets("Лист1")            arr = .Range("H2:L" & .Cells(.Rows.Count, "K").End(xlUp).Row).Value        Set Dic = CreateObject("Scripting.Dictionary"): Dic.comparemode = 1        For i = 1 To UBound(arr)            Dic.Item(Trim(arr(i, 1)) & "|" & Trim(arr(i, 2)) & "|" & Trim(arr(i, 3))) = Trim(arr(i, 4))        Next                arr = .Range("A2:C" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value        ReDim arr2(1 To UBound(arr, 1), 1 To 1)        For i = 1 To UBound(arr)            iKey = Trim(arr(i, 1)) & "|" & Trim(arr(i, 2)) & "|" & Trim(arr(i, 3))            If Dic.exists(iKey) Then                        arr2(i, 1) = Telefon_sotov(Dic.Item(iKey))            End If        Next                .[F2].Resize(UBound(arr2), 1) = arr2    End WithEnd SubPublic Function Telefon_sotov(Text As String)Set objRegExp = CreateObject("VBScript.RegExp")objRegExp.Pattern = "\+7\s\d{3}\s\d{3}-\d{2}-\d{2}"objRegExp.Global = TrueStr1 = TextSet objMatches = objRegExp.Execute(Str1)For i = 0 To objMatches.Count - 1    If rez = "" Then rez = objMatches.Item(i) Else rez = rez & Chr(10) & objMatches.Item(i)NextTelefon_sotov = rezEnd Function
Необходимо, чтобы из ячейки с данными копировались только мобильные номера
 
Добрый вечер! Есть некая база данных в виде таблицы (образец таблицы прилагается, там же и макрос). В столбце A-постоянные данные, в столбцы H и K вставляются переменные данные. Был написан макрос: когда идет совпадение по столбцу H с A, то номера телефонов вставляются из K в столбец F.
Вопрос такой: возможно ли сделать так, чтобы переносились только мобильные номера телефонов (городские номера не нужны)?
Если возможно, то подскажите пожалуйста, как должен в этом случае выглядеть макрос? что в нем изменить?
Заранее благодарю за помощь.)
Вопрос по переносу информации из одних ячеек в другие с помощью макроса, Необходимо из определенного столбца вставить при совпадении телефонные номера в другой столбец, но только мобильные номера.
 
Добрый вечер! Есть некая база данных в виде таблицы (образец таблицы прилагается, там же и макрос). В столбце A-постоянные данные, в столбцы H и K вставляются переменные данные. Был написан макрос: когда идет совпадение по столбцу H с A, то номера телефонов дублируются из K в столбец F.
Вопрос такой: возможно ли сделать так, чтобы переносились только мобильные номера телефонов (городские номера не нужны)?
Если возможно, то подскажите пожалуйста, как должен в этом случае выглядеть макрос? что в нем изменить?
Заранее благодарю за помощь.)
Макрос по нахождению совпадений из правой части таблицы к левой по ФИО и дате рождения, В таблице с помощью макроса не все совпадения находятся
 
Такой вопрос: написан макрос по нахождению совпадений из правой части таблицы к левой по ФИО и дате рождения (если совпадения есть то номер телефона из правой части таблицы должен скопироваться в левую), но он выполняется частично, либо вообще игнорирует совпадения, т.е. бывает что и вовсе не находит. Раньше макрос работал и всё было в порядке. Подскажите ,что не так?
Код
Sub test()
Dim arr(), i&, itxt
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary"): dic.comparemode = 1
With Лист1
    arr = .Range(.[E2], .[F2].End(xlDown)).Value
    For i = 1 To UBound(arr)
        dic.Item(CStr(arr(i, 1))) = arr(i, 2)
    Next i
    Erase arr
    arr = .Range(.[C2], .[A2].End(xlDown)).Value
    For i = 1 To UBound(arr)
        itxt = Trim(arr(i, 1)) & " " & Trim(arr(i, 2))
        If dic.exists(itxt) Then arr(i, 3) = dic.Item(itxt)
    Next i
    .Range("A2").Resize(UBound(arr), UBound(arr, 2)).Value = arr
End With
End Sub
Помогите найти ошибку в макросе, В таблице из одних столбцов (ФИО, др, СНИЛС) необходимо найти по ФИО человека в других столбцах и вставить телефон
 
Есть таблица, в которой столбцы A-E это исходные данные. И рядом есть столбцы H-L, в которых указаны также данные, но с телефонами. Мне необходимо найти человека из второй части таблицы и проверить, если он есть в первой части, то в столбец F должен попасть его номер телефона.
Я делаю через макрос.
Но ничего не получается. Не пойму где ошибка в макросе.
Пожалуйста, подскажите.
Код
Sub Telefon()
With Worksheets("Лист1")
    arr = .Range("H2:L" & .Cells(.Rows.Count, "L").End(xlUp).Row).Value
    Set dic = CreateObject("Scripting.Dictionary")
    On Error Resume Next
    For I = 1 To UBound(arr)
        iKey = Trim(arr(I, 1)) & Trim(arr(I, 2)) & Trim(arr(I, 3)) & CStr(arr(I, 4))
        dic.Add iKey, CStr(arr(I, 5))
    Next
    Erase arr
    arr = .Range("A2:E" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
    For I = 1 To UBound(arr)
        iKey = Trim(arr(I, 1)) & Trim(arr(I, 2)) & Trim(arr(I, 3)) & CStr(arr(I, 4))
        If dic.Exists(iKey) Then arr(I, 6) = dic(iKey)
    Next
    .Range("B2:E").Resize(UBound(arr), 6) = arr
End With
End Sub
Изменено: LenaG - 27.03.2018 10:40:17
Поиск номера телефона по ФИО: ошибка при выполнении макроса
 
Подскажите, пожалуйста, что я не так меняю в макросе?
Был файл, в котором необходимо было произвести определенные действия с помощью макроса (файл "Предыдущая таблица").
Код
Sub test() 
Dim arr(), i&, itxt 
Dim dic As Object 
Set dic = CreateObject("Scripting.Dictionary") 
With Лист1 
   arr = .Range(.[e2], .[f2].End(xlDown)).Value 
   For i = 1 To UBound(arr) 
       dic.Item(CStr(arr(i, 1))) = arr(i, 2) 
   Next i 
   Erase arr 
   arr = .Range(.[c2], .[a2].End(xlDown)).Value 
   For i = 1 To UBound(arr) 
       itxt = Trim(arr(i, 1)) & " " & Trim(arr(i, 2)) 
       If dic.exists(itxt) Then arr(i, 3) = dic.Item(itxt) 
   Next i 
   .Range("a2").Resize(UBound(arr), UBound(arr, 2)).Value = arr 
End With 
End Sub 

В текущей таблице (прилагаю) мне также необходимо найти человека в табличке 1 с ФИО как в табличке 2 и если есть совпадения вставить номер телефона в столбец F. Я пытаюсь изменить макрос под текущую таблицу, но постоянные ошибки явно дают понять, что что-то не так делаю.
Код
Sub test() 
Dim arr(), i&, itxt 
Dim dic As Object 
Set dic = CreateObject("Scripting.Dictionary") 
With Лист1 
   arr = .Range(.[h2], .[i2], .[j2], .[k2], .[l2].End(xlDown)).Value 
   For i = 1 To UBound(arr) 
       dic.Item(CStr(arr(i, 1))) = arr(i, 2) 
   Next i 
   Erase arr 
   arr = .Range(.[f2], .[a2], .[b2], .[c2], .[d2].End(xlDown)).Value 
   For i = 1 To UBound(arr) 
       itxt = Trim(arr(i, 1)) & " " & Trim(arr(i, 2)) 
       If dic.exists(itxt) Then arr(i, 3) = dic.Item(itxt) 
   Next i 
   .Range("a2").Resize(UBound(arr), UBound(arr, 2)).Value = arr 
End With 
End Sub 

Заранее благодарю за ответы.
Создание на одном листе EXCEL 1000 таблиц без повторов
 
Необходимо создание на одном листе EXCEL 1000 маленьких таблиц, что бы в них не повторялись значения. Возможно ли записать такой макрос? Пример таблиц прикладываю.
Изъятие информации из одной таблицы в другую, Изъятие информации из одной таблицы в другую
 
Добрый день! Помогите, пжл. Не могу никак подобрать формулы. Есть две таблицы с данными. Мне надо из одной таблицы перенести данные в другую. Файл прикрепила.
Изменено: LenaG - 29.11.2017 15:27:31 (вставка файла)
Страницы: 1
Наверх