Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
1

Сравнение и копирование из определенных листов книги excel

12.11.2015, 07:44. Показов 3735. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Помогите решить такую задачку: Есть книга в excel, в ней генерируются листы: x_budget и x_А; y_budget и y_А; z_budget и z_А, и так далее. То есть начало листа перед "_" меняется. Необходимо найти все листы с одинаковым началом и из листа x_budget и x_А вставить определенные ячейки на новый лист.

Думаю понятно объяснил. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2015, 07:44
Ответы с готовыми решениями:

Макрос для печати определенных листов книги Excel
Всем доброе время суток! Помогите пожалуйста. Дано: Лист с данными о клиенте и виде выполняемых...

Копирование листов из одной книги excel в другую
Помогите пожалуйста разобраться с ошибкой. Нужно чтобы по кнопке старт лист "шаблон" из файла...

Защита всех листов книги, но редактирование определённых столбцов или строк
Добрый день. Защищаю всю книгу с вводом пароля. Private Sub Workbook_Open() Dim wsSh...

Копирование листов закрытой книги в открытую
Добрий день! Есть макрос которий копирует в активную книгу лист1 и лист2 с книги города.xls в...

39
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.11.2015, 09:33 2
Непонятно объяснили. Что куда вставлять?
Другие листы с "_" в имени будут?
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
12.11.2015, 09:42  [ТС] 3
Цитата Сообщение от Hugo121 Посмотреть сообщение
Непонятно объяснили. Что куда вставлять?
Другие листы с "_" в имени будут?
Меняется название x, y, z (тоесть вместо их может быть вкладка "деньги_budget" и "деньги_А", "сотрудники_budget", "сотрудники_А" и так далее. Теперь нужно найти листы с одинаковым названием перед _budget и _А, затем значение ячейки B2 из _budget вставить на новый лист в B3 и значение ячейки B2 из _А вставить на новый лист в B4.
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.11.2015, 10:41 4
"деньги_завтра" и "стулья_вечером" не будут с парами?
Хорошо, поступила новая инфа про "нужно найти листы с одинаковым названием перед _budget и _А" - круг сужается.
Теперь скажите - новые листы нужны для каждой возможной пары, или один на все? Если один - куда вставлять?
И когда будет пример файла с листами и данными - может кто начнёт писать код
Хотя кто может и так начнёт...

Добавлено через 13 минут
Вариант алгоритма - цикл по листам - если лист like "*_budget", то смотрим нет ли пары - если есть работаем.
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
12.11.2015, 10:48  [ТС] 5
Цитата Сообщение от Hugo121 Посмотреть сообщение
"деньги_завтра" и "стулья_вечером" не будут с парами?
нет, не будут
Цитата Сообщение от Hugo121 Посмотреть сообщение
Теперь скажите - новые листы нужны для каждой возможной пары, или один на все? Если один - куда вставлять?
нет, всё поместить на один лист.
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.11.2015, 11:40 6
Цитата Сообщение от Irv1n Посмотреть сообщение
Если один - куда вставлять?
Будем спрашивать по одному вопросу в одном сообщении...
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
12.11.2015, 12:17  [ТС] 7
Цитата Сообщение от Hugo121 Посмотреть сообщение
Будем спрашивать по одному вопросу в одном сообщении...
Вставлять в один лист, без разницы куда, я сам, если что подправлю ячейки.
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.11.2015, 12:24 8
Цитата Сообщение от Irv1n Посмотреть сообщение
без разницы куда,
- значит можно всё лепить в B2 и B3... Хорошо, тем проще для программиста
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
12.11.2015, 12:27  [ТС] 9
Цитата Сообщение от Hugo121 Посмотреть сообщение
- значит можно всё лепить в B2 и B3... Хорошо, тем проще для программиста
Ну тоесть первое совпадение в B2 и B3, следующее в С2 и С3, и тд...
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.11.2015, 14:35 10
Visual Basic
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
Option Explicit
 
Sub tt()
Dim wb As Workbook, sh As Worksheet, i As Long
Set wb = ActiveWorkbook
 
Application.ScreenUpdating = False
 
With wb
For Each sh In .Worksheets
If sh.Name Like "*_budget" Then
If Sh_Exist(Replace(sh.Name, "_budget", "_А"), wb) Then
 
If i = 0 Then .Sheets.Add After:=.Sheets(.Sheets.Count)
i = i + 1
With .Sheets(.Sheets.Count)
.Cells(2, i + 1) = sh.Cells(2, 2)
.Cells(3, i + 1) = wb.Sheets(Replace(sh.Name, "_budget", "_А")).Cells(2, 2)
End With
End If
End If
 
Next
End With
 
Application.ScreenUpdating = True
 
End Sub
 
 
'Функция обязательно должна присутствовать в модуле
'проверяем наличие листа
Function Sh_Exist(sName As String, wb As Object)
Dim wsSh As Worksheet
On Error Resume Next
Set wsSh = wb.Sheets(sName)
Sh_Exist = Not wsSh Is Nothing
End Function
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
12.11.2015, 15:59  [ТС] 11
К сожалению не работает, смотрите, я прикладываю файл, в нем 7 вкладок:
1 aaa_budget
2 aaa_A
3 bbb_budget
4 bbb_A
5 ccc_budget
6 ccc_A
7 результат
в каждом из этих листов есть цифры (на листе aaa_budget - цифры 1 и 2, на листе aaa_A - цифры 3 и 4 итд по листам)
из этих листов цифры 1234 поместить в ячейки A1 B1 C1 D1 листа Результат, далее из следующих вкладок (bbb_budget и bbb_A) цифры 3456 поместить в ячейки A2 B2 C2 D2 и так далее....
https://yadi.sk/i/7gZ_HMFBkQeFA
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
12.11.2015, 16:47 12
1. Разберитесь со своими кодировками-раскладками - я писал код точно по ТЗ, для символа "А" (скопировал первое упоминание из поста).
2. Искать числа по всему листу тоже никто не просил - было конкретно сказано
"значение ячейки B2 из _budget вставить на новый лист в B3 и значение ячейки B2 из _А вставить на новый лист в B4"
"первое совпадение в B2 и B3, следующее в С2 и С3, и тд..."
А если задание ставите так как сейчас - то может кто другой и напишет копирование двух единственных значений с этих листов, но не я (потому что уверен это не финиш...).
Или давайте полный список всех листов с позициями/адресами этих значений на каждом - только следите за символами! Будет завтра время - что-нибудь напишу...
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
15.11.2015, 13:47  [ТС] 13
во вложении я вставил документ в котором привел описание и вид как все нужно представить, готов немного пожертвовать, тому кто сделает. Спасибо.
Вложения
Тип файла: docx уточнение.docx (13.7 Кб, 6 просмотров)
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
15.11.2015, 14:39 14
Я уже ту первую задачу полностью сделал - про то, что юзеры будут косячить с именами листов речи не было, и выводить результаты оговаривалось вправо, а не вниз. И эти "определённые" в первой задаче ячейки тоже аккуратно собрал.
Можно конечно переделать под новую задачу - но так и нет ясности что за и кем и когда "определённые" ячейки. Да и многократно переделывать код даже за маленькое пожертвование охоты нет - распишите всё конкретно.
Прочитал 2 раза docx - конкретики не нашёл. Может она там и есть, но я не нашёл где
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
15.11.2015, 14:41  [ТС] 15
Не знаю как по другому сказать, может вы спрашивайте, что неясно, буду уточнять. Спасибо.
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
15.11.2015, 17:59 16
Хорошо.
Вот в примере который был в https://yadi.sk/i/7gZ_HMFBkQeFA из каждого листа нужно было копировать разные ячейки. Как понять что именно нужно копировать?
Конечно если на этих листах произвольно раскиданы всегда только две ячейки с данными - вопрос почти снимается, скажите только в каком порядке их копировать. Но всё равно пока не понятно куда копировать с каких листов - покажите ещё один пример с заполненным результатом, может будет чуть понятнее.
Но сегодня скорее всего ничего Вам делать не буду, есть всякие разные другие дела.
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
15.11.2015, 20:58  [ТС] 17
Во вложении привел конкретный пример файла эксель таблицы со всеми формулами, которые приведены на листе 1x_Protocol и там же комментарии.
Вложения
Тип файла: zip GPT-79804.zip (1.34 Мб, 9 просмотров)
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
15.11.2015, 21:10 18
Цитата Сообщение от Hugo121 Посмотреть сообщение
скажите только в каком порядке их копировать.
Цитата Сообщение от Hugo121 Посмотреть сообщение
покажите ещё один пример с заполненным результатом
Покажите где в файле ответ на эти вопросы - некогда искать.
0
0 / 0 / 0
Регистрация: 12.11.2015
Сообщений: 22
15.11.2015, 21:14  [ТС] 19
Цитата Сообщение от Hugo121 Посмотреть сообщение
Покажите где в файле ответ на эти вопросы - некогда искать.
в файле на листе 1x_Protocol уже готовые таблицы их нужно сделать в таком же виде, там есть все формулы откуда копировать...
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
15.11.2015, 21:18 20
Нет там никаких протоколов.
0
15.11.2015, 21:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2015, 21:18
Помогаю со студенческими работами здесь

Сравнение листов в книге, и копирование значений
Помогите пожалуйста. Есть книга с 3 листами, нужно провести сравнение и копирование. Сравнение...

Копирование листов из одной книги в другу + добавление названия
Привет всем. Прошу Вас честно, допилить код. Начал только изучать VBA, стоит следующая задача....

Копирование построчной информации со всех листов 1-й книги на общую страницу
Добрый день, друзья. Прошу Вашей помощи. Мне необходимо перенести попорядку построчно данные со...

Копирование строк из нескольких Листов по условию на Лист этой же Книги
Добрый день, Нужна ваша помощь для реализации, думаю не сложной, задачи. Стандартными средствами...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru