не могу решить такую задачу. Имеется таблица с уникальным id и некоторыми его признаками (от одного до 7). Нужно, чтобы ID продублировался, но каждый раз с одним из признаков от 1го до 7ми. Как можно это сделать? спасибо. Поиском искал, но не нашёл. Спасибо
Как есть:
ID
1
2
3
4
5
6
7
ID1
123
322
ID2
2334
ID3
23
331
354553
Как должно быть:
ID
1
ID1
123
ID1
322
ID2
2334
ID3
23
ID3
331
ID3
354553
То есть строк с ID должно быть столько же, сколько запоненых значений в колонках.
Столкнулся со следующей проблемой. Если я запускаю макрос сразу после открытия файла, в котором он содержится - всё работает как часы. Но если я его повторно запущу, то возникает ошибка: 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