Страницы: 1
RSS
Копирование и перенос фильтрованой таблицы на другой лист
 
Sub copi_A()  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2, Criteria1:= _  
       "шт"  
   Range("B8:D18").Select  
'Подправить необходимо верхнюю строку что бы выбирался не заданный диапазон ячеек а отфильтрованная таблица'  
   Selection.Copy  
   Sheets("Лист2").Select  
   Range("B8").Select  
   ActiveSheet.Paste  
   Sheets("Лист1").Select  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2  
End Sub  
 
Помогите подправить
Спасибо
 
{quote}{login=R Dmitry}{date=20.02.2010 12:26}{thema=Копирование и перенос фильтрованой таблицы на другой лист}{post}Sub copi_A()  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2, Criteria1:= _  
       "шт"  
   Range("B8:D18").Select  
'Подправить необходимо верхнюю строку что бы выбирался не заданный диапазон ячеек а отфильтрованная таблица'  
   Selection.Copy  
   Sheets("Лист2").Select  
   Range("B8").Select  
   ActiveSheet.Paste  
   Sheets("Лист1").Select  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2  
End Sub  
 
Помогите подправить{/post}{/quote}  
 
 
Подправить необходимо макрос что бы выбирался не заданный диапазон ячеек а отфильтрованная таблица'
Спасибо
 
Вот макрорекордером записанно. Для оптимизации от лишних слектов нужно избавиться.  
 
Sub Макрос5()  
'  
' Макрос5 Макрос  
'  
 
'  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2, Criteria1:= _  
       "шт"  
   Range("B8:D8").Select  
   Selection.Copy  
   Sheets("Лист2").Select  
   Range("B6").Select  
   ActiveSheet.Paste  
   Application.CutCopyMode = False  
   Application.Goto Reference:="Таблица1"  
   Selection.Copy  
   Sheets("Лист2").Select  
   Range("B7").Select  
   ActiveSheet.Paste  
   Application.CutCopyMode = False  
End Sub
 
{quote}{login=Михаил}{date=20.02.2010 01:06}{thema=}{post}Вот макрорекордером записанно. Для оптимизации от лишних слектов нужно избавиться.  
 
Sub Макрос5()  
'  
' Макрос5 Макрос  
'  
 
'  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2, Criteria1:= _  
       "шт"  
   Range("B8:D8").Select  
   Selection.Copy  
   Sheets("Лист2").Select  
   Range("B6").Select  
   ActiveSheet.Paste  
   Application.CutCopyMode = False  
   Application.Goto Reference:="Таблица1"  
   Selection.Copy  
   Sheets("Лист2").Select  
   Range("B7").Select  
   ActiveSheet.Paste  
   Application.CutCopyMode = False  
End Sub{/post}{/quote}  
 
спасибо но не то мне нужно скопировать таблицу1 а не диапазон Range("B8:D8").Select  
 
у меня будут данные и выше и ниже таблицы и таблица будет перемещаться и вверх и вниз путем добавления и удаления строк которые находятся выше таблицы при предложенном вами макросе будут копироваться данные из диапазона не входящего в таблицу а надо именно из таблицы к которой применен фильтр
Спасибо
 
Вы вставте код, и попробуйте. С добавлением строк.  
 
И вот еще пример.
 
{quote}{login=Михаил}{date=20.02.2010 02:17}{thema=}{post}Вы вставте код, и попробуйте. С добавлением строк.  
 
И вот еще пример.{/post}{/quote}  
спасибо но все равно не то, сама по себе таблица автоматически расширяется при добавлении строк  
добавьте в свою таблицу запись....никак
Спасибо
 
Понимаете я не имел ввиду таблицу 3*10 я имел виду именно ListObjects("Таблица1")  
то есть объект независимый.
Спасибо
 
{quote}{login=Михаил}{date=20.02.2010 02:17}{thema=}{post}Вы вставте код, и попробуйте. С добавлением строк.  
 
а вы думаете я не пробовал заполните ячейки выше диапазона таблицы и вы получите результат вашего макроса
Спасибо
 
{quote}{login=The_Prist}{date=20.02.2010 06:45}{thema=}{post}А еще лучше так:  
 
Sub copi_A()  
   With ActiveSheet.Range("Таблица1")  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2, Criteria1:="шт"  
   Sheets("Лист2").Range(.Address).Clear  
   Range(.Address).Resize(.Rows.Count + 1).Offset(-1).SpecialCells(xlVisible).Copy Sheets("Лист2").Cells(.Row, 2)  
   ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2  
   End With  
End Sub{/post}{/quote}  
да работает но еще осталась одна загвоздка, в первом и во втором случае при вставке макрос вставляет в ту же строку, что и таблица на первом листе и при ее смещении смещает и строку вставки т.е. если таблица начинается со строки B5 то на втором листе она вставляется тоже начиная со строки B5. а необходимо что бы начало диапазона вставки было описано в макросе  
Range("B6").Select
Спасибо
 
{quote}{login=The_Prist}{date=20.02.2010 11:17}{thema=Re: Re: }{post}{quote}{login=R Dmitry}{date=20.02.2010 11:12}{thema=Re: }{post}а необходимо что бы начало диапазона вставки было описано в макросе  
Range("B6").Select{/post}{/quote}Необходимо сразу описывать все условия. Да уж и додумать-то можно было куда свой адрес подставить. Вроде это-то уж не сложно.  
 
Sub copi_A()  
With ActiveSheet.Range("Таблица1")  
ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2, Criteria1:="шт"  
Sheets("Лист2").Range(.Address).Clear  
Range(.Address).Resize(.Rows.Count + 1).Offset(-1).SpecialCells(xlVisible).Copy Sheets("Лист2").Range("B6")  
ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=2  
End With  
End Sub{/post}{/quote}  
да спасибо теперь все ок!
Спасибо
Страницы: 1
Наверх