вставляет запомненные значения в новую книгу с 2000 строки
Nikita999
Дата: Четверг, 26.05.2016, 11:12 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день! Думаю для вас будет очень легкая проблема, но никак не могу "правильно" построить макрос, чтобы он вставлял массив данных, который соответсвует критериям, со 2 строки, а не с 2000 какой-то (все эти 2000 строк делает пустыми). Понимаю что нужно обнулить счетчик, но как это вкорячить это сюда - не могу понять, попытки не увенчались успехом - вообще переставал что-либо выгружать. То есть проблема в макросе с заполнением новой книги со строки:Workbooks.Add, Set Mwb4 = ActiveWorkbook. Ниже приклыдваю файл с макросом - название "CO". Заранее огромное спасибо!
Добрый день! Думаю для вас будет очень легкая проблема, но никак не могу "правильно" построить макрос, чтобы он вставлял массив данных, который соответсвует критериям, со 2 строки, а не с 2000 какой-то (все эти 2000 строк делает пустыми). Понимаю что нужно обнулить счетчик, но как это вкорячить это сюда - не могу понять, попытки не увенчались успехом - вообще переставал что-либо выгружать. То есть проблема в макросе с заполнением новой книги со строки:Workbooks.Add, Set Mwb4 = ActiveWorkbook. Ниже приклыдваю файл с макросом - название "CO". Заранее огромное спасибо! Nikita999
Ответить
Сообщение Добрый день! Думаю для вас будет очень легкая проблема, но никак не могу "правильно" построить макрос, чтобы он вставлял массив данных, который соответсвует критериям, со 2 строки, а не с 2000 какой-то (все эти 2000 строк делает пустыми). Понимаю что нужно обнулить счетчик, но как это вкорячить это сюда - не могу понять, попытки не увенчались успехом - вообще переставал что-либо выгружать. То есть проблема в макросе с заполнением новой книги со строки:Workbooks.Add, Set Mwb4 = ActiveWorkbook. Ниже приклыдваю файл с макросом - название "CO". Заранее огромное спасибо! Автор - Nikita999 Дата добавления - 26.05.2016 в 11:12
Udik
Дата: Четверг, 26.05.2016, 13:30 |
Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
так правильно [vba]Код
For Ii1# = 2 To cnt2# If Channel(Ii1#) = "Retail" Then Cells(Ii1#, 1).Value = "FCST_Channels (CO)"
[/vba] Зачем Вы привязали номер вставляемых строк к условию. У Вас вставлять будет на ту строку, где условия совпадут. Номера вставляемых строк должны на отдельном счётчике быть, т.е вместо Cells(Ii1#, 1).Value например Cells(Ii2 1).Value, только не забывайте увеличивать счётчик после каждого совпадения условия[p.s.]зачем столько решёток в коде
так правильно [vba]Код
For Ii1# = 2 To cnt2# If Channel(Ii1#) = "Retail" Then Cells(Ii1#, 1).Value = "FCST_Channels (CO)"
[/vba] Зачем Вы привязали номер вставляемых строк к условию. У Вас вставлять будет на ту строку, где условия совпадут. Номера вставляемых строк должны на отдельном счётчике быть, т.е вместо Cells(Ii1#, 1).Value например Cells(Ii2 1).Value, только не забывайте увеличивать счётчик после каждого совпадения условия[p.s.]зачем столько решёток в коде Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Четверг, 26.05.2016, 13:35
Ответить
Сообщение так правильно [vba]Код
For Ii1# = 2 To cnt2# If Channel(Ii1#) = "Retail" Then Cells(Ii1#, 1).Value = "FCST_Channels (CO)"
[/vba] Зачем Вы привязали номер вставляемых строк к условию. У Вас вставлять будет на ту строку, где условия совпадут. Номера вставляемых строк должны на отдельном счётчике быть, т.е вместо Cells(Ii1#, 1).Value например Cells(Ii2 1).Value, только не забывайте увеличивать счётчик после каждого совпадения условия[p.s.]зачем столько решёток в коде Автор - Udik Дата добавления - 26.05.2016 в 13:30
Nikita999
Дата: Четверг, 26.05.2016, 18:58 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Спасибо! Не силен в коде, но в силу необходимости пришлось доработать.. про решетки - взять с похожего кода, поэтому не менялось, так как не особо напрягали) По увеличению счетчика до конца не понятно.. испробовал несколько вариантов (ранее так же пытался сделать и не вышло) вначале нужно прописать For Ii2 = 2 to 10000 (например) и далее после кажого условия next Ii2? Заранее спасибо...
Спасибо! Не силен в коде, но в силу необходимости пришлось доработать.. про решетки - взять с похожего кода, поэтому не менялось, так как не особо напрягали) По увеличению счетчика до конца не понятно.. испробовал несколько вариантов (ранее так же пытался сделать и не вышло) вначале нужно прописать For Ii2 = 2 to 10000 (например) и далее после кажого условия next Ii2? Заранее спасибо... Nikita999
Ответить
Сообщение Спасибо! Не силен в коде, но в силу необходимости пришлось доработать.. про решетки - взять с похожего кода, поэтому не менялось, так как не особо напрягали) По увеличению счетчика до конца не понятно.. испробовал несколько вариантов (ранее так же пытался сделать и не вышло) вначале нужно прописать For Ii2 = 2 to 10000 (например) и далее после кажого условия next Ii2? Заранее спасибо... Автор - Nikita999 Дата добавления - 26.05.2016 в 18:58
Udik
Дата: Четверг, 26.05.2016, 19:36 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
второй счетчик без цикла где-нибудь вначале инициализируете [vba][/vba] а для увеличения [vba][/vba]
второй счетчик без цикла где-нибудь вначале инициализируете [vba][/vba] а для увеличения [vba][/vba] Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Ответить
Сообщение второй счетчик без цикла где-нибудь вначале инициализируете [vba][/vba] а для увеличения [vba][/vba] Автор - Udik Дата добавления - 26.05.2016 в 19:36
Nikita999
Дата: Пятница, 27.05.2016, 10:28 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Спасибо большое! Сделал немножко по-другому. Всё работает! Осталось пару штрихов... не знаете как переставить в макросе текст местами по символам? например [vba][/vba] ? Прикрепляю файл с финальным макросом.
Спасибо большое! Сделал немножко по-другому. Всё работает! Осталось пару штрихов... не знаете как переставить в макросе текст местами по символам? например [vba][/vba] ? Прикрепляю файл с финальным макросом. Nikita999
Ответить
Сообщение Спасибо большое! Сделал немножко по-другому. Всё работает! Осталось пару штрихов... не знаете как переставить в макросе текст местами по символам? например [vba][/vba] ? Прикрепляю файл с финальным макросом. Автор - Nikita999 Дата добавления - 27.05.2016 в 10:28
Матраскин
Дата: Пятница, 27.05.2016, 10:32 |
Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация:
81
±
Замечаний:
0% ±
20xx
в интернете опять кто-то не прав
Сообщение отредактировал Матраскин - Пятница, 27.05.2016, 10:32
Ответить
RAN
Дата: Пятница, 27.05.2016, 10:34 |
Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [vba][/vba] Автор - RAN Дата добавления - 27.05.2016 в 10:34
Nikita999
Дата: Пятница, 27.05.2016, 12:35 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Cпасибо, но эта функция работает только на обратный порядок. А если именно текст переставить местами не в обратном, а допустим 01 01 2016 в 2016 01 01 уже не срабоатет... [moder]Этот вопрос не относится к данной теме. Создайте новую.[/moder]
Cпасибо, но эта функция работает только на обратный порядок. А если именно текст переставить местами не в обратном, а допустим 01 01 2016 в 2016 01 01 уже не срабоатет... [moder]Этот вопрос не относится к данной теме. Создайте новую.[/moder] Nikita999
Сообщение отредактировал Manyasha - Пятница, 27.05.2016, 12:38
Ответить
Сообщение Cпасибо, но эта функция работает только на обратный порядок. А если именно текст переставить местами не в обратном, а допустим 01 01 2016 в 2016 01 01 уже не срабоатет... [moder]Этот вопрос не относится к данной теме. Создайте новую.[/moder] Автор - Nikita999 Дата добавления - 27.05.2016 в 12:35
Матраскин
Дата: Пятница, 27.05.2016, 12:43 |
Сообщение № 9
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация:
81
±
Замечаний:
0% ±
20xx
[vba]Код
Dim st, st1 As String, i As Integer st = Split("01 01 2016") For i = UBound(st) To 0 Step -1 st1 = st1 & st(i) & " " Next i
[/vba]
[vba]Код
Dim st, st1 As String, i As Integer st = Split("01 01 2016") For i = UBound(st) To 0 Step -1 st1 = st1 & st(i) & " " Next i
[/vba] Матраскин
в интернете опять кто-то не прав
Сообщение отредактировал Матраскин - Пятница, 27.05.2016, 12:49
Ответить
Сообщение [vba]Код
Dim st, st1 As String, i As Integer st = Split("01 01 2016") For i = UBound(st) To 0 Step -1 st1 = st1 & st(i) & " " Next i
[/vba] Автор - Матраскин Дата добавления - 27.05.2016 в 12:43
Nikita999
Дата: Пятница, 27.05.2016, 12:45 |
Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Топорно, но придумал только такой рабочий вариант: если кому-то пригодится: [vba]Код
Cells(2, 14).FormulaLocal = "=ПСТР(I2;7;300)&ПСТР(I2;4;2)&ПСТР(I2;1;2)" Range("N2").Select Selection.AutoFill Destination:=Range("N2:N3000"), Type:=xlFillDefault
[/vba]
Топорно, но придумал только такой рабочий вариант: если кому-то пригодится: [vba]Код
Cells(2, 14).FormulaLocal = "=ПСТР(I2;7;300)&ПСТР(I2;4;2)&ПСТР(I2;1;2)" Range("N2").Select Selection.AutoFill Destination:=Range("N2:N3000"), Type:=xlFillDefault
[/vba] Nikita999
Ответить
Сообщение Топорно, но придумал только такой рабочий вариант: если кому-то пригодится: [vba]Код
Cells(2, 14).FormulaLocal = "=ПСТР(I2;7;300)&ПСТР(I2;4;2)&ПСТР(I2;1;2)" Range("N2").Select Selection.AutoFill Destination:=Range("N2:N3000"), Type:=xlFillDefault
[/vba] Автор - Nikita999 Дата добавления - 27.05.2016 в 12:45