Здравствуйте уважаемые знатоки Exсel. Надеюсь вам не составит труда объяснить как сделать очень сложное для меня действие. Постараюсь поподробнее объяснить суть вопроса. У меня есть несколько книг и они постоянно добавляются, в каждой книге по шесть листов одного формата, но разного содержания. Количество и имена листов в книгах, постоянные, диапазон для счета тоже. Мне нужно посчитать в отдельной книге (назову её "каталог" количество совпадений с списком в этом каталоге, для каждой книги отдельный столбик., Путем нескольких дней и ночей поиска, не придумал ни чего лучше, чем в катологе вписать такую формулу =СУММ(СЧЁТЕСЛИ([Книга1.xlsx]Альфа!$A$2:$A$20;A9);СЧЁТЕСЛИ([Книга1.xlsx]Бета!$A$2:$A$20;A9);СЧЁТЕСЛИ([Книга1.xlsx]Гамма!$A$2:$A$20;A9)) (Для примера создал всего три страницы , альфа бета и гамма). Вроде все хорошо, для "Книга1" формула действует. Записал макрос запуска этой формулы. Но Как только попробовал применить этот макрос для "Книга2", попал в тупик, формула требует обновить вязь с "Книга1", а "Книга2"не считает. Подскажите, можно ли сделать так что бы макрос спрашивал какую книгу считать. А то писать каждый раз новую формулу, ну ооочень долго. С макросами знаком, на уровне- нажать на кнопку запись, и остановка. Или есть другой способ решить эту задачу? Без макросов. P.S.И если можно подскажите, где почитать о создании макросов, для чайников в этом деле. Уж очень хочется самому научиться.
Спасибо. Только я пока не совсем понял как мне в этот макрос вписать то что мне нужно (количество совпадений). Хотя, благодаря вашему макросу, у меня появилась идея как еще это можно решить. Вот только подскажите, пожалуйста, можно ли в эту строку
Руслан ** пишет: Мне нужно посчитать в отдельной книге (назову её "каталог";)количество совпадений с списком в этом каталоге, для каждой книги отдельный столбик
"Сдавать" - это шутка, конечно. Давайте про картинку таблицы-результата ТОЧНО: по горизонтали - продукты, по вертикали - имена файлов-Источников (по горизонтали - - имена файлов-Источников, по вертикали - продукты).
Количество продуктов - произвольно, количество файлов-Источников - произвольно. Работу макроса объясню в СКАЙПЕ в режиме демонстрации экрана "живьем".
Sub test()
Dim Folder As String
Dim wb As String
Dim objWb As Workbook
Dim workWb As Workbook
Dim i As Integer
Set workWb = ActiveWorkbook 'Запоминаем активную книгу
'Показываем диалог выбора папки
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Выберите папку, файлы в которой нужно обработать"
.ButtonName = "Выбрать"
.AllowMultiSelect = False
If .Show Then Folder = .SelectedItems(1) Else Exit Sub
End With
'Начинаем читать файлы из папки
wb = Dir(Folder & Application.PathSeparator & "*.xls")
While Len(wb) > 0
i = i + 1
wb = Folder & Application.PathSeparator & wb
Set objWb = Workbooks.Open(wb)
здесь твой код
objWb.Close False
wb = Dir 'читаем следующий файл
Wend
End Sub
Nic70y! Зачем пользователь должен указывать список файлов?! Даже самый тривиальнейший макрос обязан уметь считывать самостоятельно имена файлов, находящихся в каком-либо каталоге, и уметь создавать их список !
Если Вы об образовании: 1. современное "верхнее" российское образование - достаточно дешевый атрибут, который можно приобрести элементарно даже за дензнаки; 2. как известно, программированию и козу научить можно.
Мотя пишет: Даже самый тривиальнейший макрос обязан уметь считывать самостоятельно имена файлов, находящихся в каком-либо каталоге, и уметь создавать их список !
Полагаю, что если у меня есть своя "VB-рыба" на предмет динамического считывания имен файлов из каталога, состоящая из небольшого набора команд VB, это - не криминал в отношении указанных рекомендаций.