Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 4

Как сохранить нужные данные с первого листа на второй лист?

28.11.2013, 10:52. Показов 1406. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане! =)

Программирую на пхп, паскаль, сейчас приступил к изучению питона.
Хотел решить задачу по экселю на питоне, но пока не получается... Не так просто оказалось, как думалось)

Задача простая, не могу решить, так как vba не знаю. Логике, алгоритм составить нет проблем, проблема в знании конструкций языка.

Требуется решить простую, рутинные задача, которую делаю каждый день руками. Хочу автоматизировать именно в самом экселе.

Имеется один файл. На первом листе столбцы:
- Процент завершения
- Тип документа
- И десяток других столбцов, которые пока не интересуют.

Одна строка - одна запись.

Требуется:
- выбрать все строки, в которых процент завершения больше 50%.
- скопировать на новый лист этой книги первые два столбца (процент завершения и тип документа)

Прошу помочь, направить, подсказать конструкции которые нужно использовать. Чтобы ускорить процесс решения данной задачи.

Если кто-то может решить, могу сделать бонус)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2013, 10:52
Ответы с готовыми решениями:

Вставить данные по условию во второй лист из первого
Знатоки подскажите как сделать. Таблица и то что надо в прикрепленном файле. Надо чтобы из большой таблицы Техника заполнятся второй...

Как создать новый лист и импортировать данные с другого листа на новый лист
как создать новый лист и импортировать данные с другого листа на новый лист. Private Sub CommandButton1_Click() ' Создание...

Excel : Скопировать выделенный диапазон с первого листа на тот лист активной рабочей книги
8. Excel : Скопировать выделенный диапазон с первого листа на тот лист активной рабочей книги, номер которого получен через функцию...

5
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
28.11.2013, 11:05
Webfave, приложите на форум (расширенный режим - скрепка) пример файла (желательно *.xls (2003)) - что есть и что надо.
Меньше будет непоняток со всех сторон.
2
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 4
28.11.2013, 12:05  [ТС]
Апострофф, прикрепил книгу, xls 97-2003. Два листа.
Вложения
Тип файла: xls test_vba.xls (38.5 Кб, 6 просмотров)
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
28.11.2013, 12:44
Вариантов решения >2, и есть зависимость от того, что именно находится на листе.
Ну и Вам нужны именно ячейки, или достаточно отобрать данные?
Как первый очевидный вариант - автофильтр по этому проценту, копирование двух столбцов на другой лист. Записываете процесс рекордером. Лишнее из записи выкидываете.

Добавлено через 26 минут
Например так для начала, без перетасовки данных столбцов:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 28.11.2013
'
 
    With Sheets("Данные")
        .Range("C1").AutoFilter Field:=3, Criteria1:=">=50", Operator:=1
        .Range("A1").CurrentRegion.Copy Sheets("Отчет").Range("A10")
        .UsedRange.AutoFilter
    End With
 
End Sub
Добавлено через 7 минут
Без лишнего четвёртого столбца:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 28.11.2013
'
 
    With Sheets("Данные")
        .Range("C1").AutoFilter Field:=3, Criteria1:=">=50", Operator:=1
        .Range("A1").CurrentRegion.Resize(, 3).Copy Sheets("Отчет").Range("A10")
        .UsedRange.AutoFilter
    End With
 
End Sub
Ну а дальше можно перебрать и изменить результат. Если действительно это необходимо.
1
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 4
28.11.2013, 13:23  [ТС]
Hugo121,

1. В первой строке, в ячейке 3 значение больше или равно 50
2. Если больше или равно, скопировать данные из 1,2,3 ячейки и добавить в массив.
3. Проверить следующую строку.
4. Если таблица закончилась, пустая строка, тогда добавить все скопированные строки на второй лист.
5. Добавить в однй строку, ячеку. Чтобы это было одним предложением. Все значения первой срокированный строки, запятая, все задачения второй скопированной строки итд. Через запятую.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
28.11.2013, 13:44
Годится. Делайте

Вернее доделывайте. Остался п.5.
Хотя конечно можно делать всё заново и иначе, по другому алгоритму.

Добавлено через 18 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Macro2()
    Dim c As Range, x&
    
    With Sheets("Данные")
        .Range("C1").AutoFilter Field:=3, Criteria1:=">=50", Operator:=1
        With .Range("A1").CurrentRegion.Resize(, 3)
            ReDim a(1 To .Rows.Count, 1 To 1)
            For Each c In .Offset(1).Columns(1).Cells
                If Not Intersect(c, .SpecialCells(xlCellTypeVisible)) Is Nothing Then
                    x = x + 1
                    a(x, 1) = c.Offset(, 1) & ", " & c & ", " & c.Offset(, 2) & "%"
                End If
            Next
            Sheets("Отчет").Range("A10").Resize(x, 1) = a
        End With
        .UsedRange.AutoFilter
    End With
 
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2013, 13:44
Помогаю со студенческими работами здесь

Из одного листа автоматически переносить данные в другой лист
Помогите ребят, надо из одного листа перенести данные в другой лист, автоматически, но первый лист постоянно удаляется и добавляются новые...

Необходимо подтянуть данные с листа на лист Excel (по типу ВПР)
Всем,добрый день. Прошу помочь в вопросе описанном ниже. Необходимо с помощью модуля подтянуть данные с Лист1(у меня это...

Занести последние данные с выбранного листа в combobox в лист РАСЧЕТ
Доброго времени суток! Помогите написать обработчик для кнопки: при выборе дня недели в комбобокс и нажатии на кнопку необходимо...

Копирование кнопкой видимых ячеек с первого листа на второй
Записал макрорекордером макрос, но по непонятным мне причинам ругается на 9 строку. А требуется, чтобы он мне с первого защищенного листа...

Нужно написать программу которая данные из двух ячеек первого листа Excel складывает и вписывает во второй лист...
Прошу помощи, нужно написать программу, которая данные из двух ячеек первого листа складывала и вписывала во второй лист excel... Как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru