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

Страницы: 1
Дублирование строк на основе данных в столбцах
 
Добрый день,

не могу решить такую задачу. Имеется таблица с уникальным id и некоторыми его признаками (от одного до 7). Нужно, чтобы ID продублировался, но каждый раз с одним из признаков от 1го до 7ми. Как можно это сделать? спасибо. Поиском искал, но не нашёл. Спасибо

Как есть:
ID1234567
ID1123322
ID2 2334
ID323331354553
Как должно быть:
ID1
ID1123
ID1322
ID2 2334
ID323
ID3331
ID3354553
То есть строк с ID должно быть столько же, сколько запоненых значений в колонках.
Изменено: cooltouch - 15.10.2019 01:06:56
Run-time error '91 Object variable or With block variable not set, ошибка возникает только при повторном запуске макроса
 
Добрый день, уважаемые форумчане.

Столкнулся со следующей проблемой. Если я запускаю макрос сразу после открытия файла, в котором он содержится - всё работает как часы. Но если я его повторно запущу, то возникает ошибка: Run-time error '91 Object variable or With block variable not set' в строчке  If rng.Value Like txt & "*" Then. Вопрос: почему ошибка возникает ТОЛЬКО при повторном запуске макроса? Почему переменной rng при повторном запуске не присваивается значение? Объясните, пожалуйста.

Часть макроса, в котором появляется ошибка:

Код
Dim txt As String, rng As Range, I As Integer, n As String, ws As Worksheet
Application.ScreenUpdating = False

n = ActiveSheet.Name
For I = 1 To UBound(Regions) 
    With Workbooks("имя_файла"    .Worksheets("Report 2"    .Range("A:A"    
        txt = CStr(Regions(I))
        Set rng = .find(What:=txt, LookIn:=xlValues)
        If txt <> "Russia|B2B Partner Support" Then
            MsgBox "txt = " & txt               'для тестов
            If rng Is Nothing Then             'для тестов
            MsgBox "Nothing"          'для тестов =========>>>> срабатывает это условие. То есть переменной rng при повторном запуске не присваивается 'значение.
            Else: MsgBox "" & rng.Value   'для тестов
            End If
        Else
            Set rng = .find(What:=txt, LookIn:=xlValues, LookAt:=xlWhole)   
            MsgBox "" & rng.Address    'для тестов ===========================> здесь валится. Оно и понятно, так как rng = Nothing
        End If
        If rng.Value Like txt & "*" Then   '<=====================================или здесь
                Set ws = Worksheets.Add
                ws.Name = txt
                ws.Move After:=Worksheets(n)
        End If
    End With
Next I
Изменено: cooltouch - 24.10.2014 12:45:11
Страницы: 1
Наверх