powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / После фильтра перенести данные на новый лист
4 сообщений из 4, страница 1 из 1
После фильтра перенести данные на новый лист
    #37997260
Chumakov_JA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите с Макросом
нужно перенести на новый лист
номера в которых категория = 20
...
Рейтинг: 0 / 0
После фильтра перенести данные на новый лист
    #37997324
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chumakov_JA,

включите макрорекордер
Sub Макрос3()
'
' Макрос3 Макрос
'

'
Selection.AutoFilter
ActiveSheet.Range("$A$1:$B$73").AutoFilter Field:=2, Criteria1:="20"
Range("A1:B62").Select
Selection.Copy
Sheets("Лист2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
...
Рейтинг: 0 / 0
После фильтра перенести данные на новый лист
    #37997328
R Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно и по сложнее вариантом воспользоваться :)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Public Function ADO_R_Dmitry(ByVal StrSql$, ByVal FilePath$, ByVal OutputRange As Range, _
ByVal FieldsName As Boolean, ByVal OutputFieldsName As Boolean)
'==============================================================================
'*Описание функции : Возвращает набор записей Recordset с первой ячейки адреса,
'* указанного диапазона.
'*strSql - Конструкция SQL  запроса.
'* FilePath - Полный путь к файлу включая имя и расширение.
'* OutputRange - адрес ячеки с которой начинается вывод данных.
'* FieldsName - используются или нет заголовки столбцов (True - False)
'* OutputFieldsName - вывод данных с заголовками или без (True - False), _
'==============================================================================
'* Автор R Dmitry (Дмитрий Русак dg_rusak@mail.ru skype: RDG_Dmitry)          |
'* WM:_R269866874234 U144446690328                                            |
'==============================================================================
Dim sCon As String, FieldName As String
Dim rs As Object, cn  As Object
Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"
Select Case Val(Application.Version)

    Case Is < 12
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
    Case Is >= 12
        sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
        & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select

cn.Open sCon
If Not cn.State = 1 Then Exit Function
Set rs = cn.Execute(StrSql)
If Not FieldsName Then OutputFieldsName = False
 If OutputFieldsName Then
    For i = 0 To rs.Fields.Count - 1
    OutputRange.Offset(0, i) = rs.Fields(i).Name
    Next
    Set OutputRange = OutputRange.Offset(1, 0)
 End If
 DoEvents
OutputRange.CopyFromRecordset rs
rs.Close:  cn.Close
Set cn = Nothing: Set rs = Nothing
End Function
Sub test()
Dim strSql2$
strSql2 = "select * from [Лист1$] where Категория=20"
Sheets(2).[a1].CurrentRegion.ClearContents
Call ADO_R_Dmitry(strSql2, ThisWorkbook.FullName, Sheets(2).[a1], True, True)
Sheets(2).Activate
End Sub

...
Рейтинг: 0 / 0
После фильтра перенести данные на новый лист
    #37997437
Chumakov_JA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вобщем по первому варианту
вроде все работает
но при моих обемах где количество записей около 30000
файл увеличился с 1.3 мб до 21 мб

второй вариант сильно крутой

а вот попроще
перенос данных в цикле

и ещё небольшое изменение
при переносе в зависимости от категории
второе поля должнобыть заполнено
или из второго или из третьего

помогите с реализацией
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / После фильтра перенести данные на новый лист
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]