Есть таблица с данными, в одном из столбцов этой таблице (Organization) содержаться повторяющиеся значения (April, May..) Есть макрос, который разбивает эту таблицу на отдельные файлы, по содержащемся значению в столбце Organization. Созданным файлам присваивается имя, как у значения, по которому они созданы. Файлы помещаются в папке, из которой открыт исходный файл.
Помогите пожалуйста добавить в макрос код, который будет создавать папку с таким же именем как у файла и помещать в нее этот файл. Все созданные папки с файлами должны падать в папку, из которой открыт исходный файл-таблица, который разбивается. во вложении исходный файл с макросом (Book5) и один из итоговых файлов (April)
Полагаю, что надо дописать эту часть, но как и чем не знаю. Помогите плиз.
Код
For i = 2 To rngList.Count
rngCrit.FormulaR1C1 = _
"=" & rngCol(1).Address(False, False, xlR1C1, True) & "=""" & rngList(i) & """"
With Workbooks.Add
With .Sheets(1)
rngTable.AdvancedFilter xlFilterCopy, rngCrit.Offset(-1).Resize(2), .[A1]
rngTable.Parent.Rows("1:3").Copy
.Rows("1:1").Insert Shift:=xlDown
.UsedRange.EntireColumn.AutoFit
End With
Application.DisplayAlerts = False
.SaveAs ThisWorkbook.Path & "\" & rngList(i), 51
Application.DisplayAlerts = True
.Close True
End With
Next i
Во вложении один из файлов, которые получатся в итоге. Т.е. макрос фильтрует таблицу по столбцу Organization, и вставляет эту часть в новый файл, все файлы складываются в текущую папку. У файлов при открытии выходит предупреждение.
Нашла макрос, который разбивает таблицу на файлы по критерию значения из столбца этой таблицы. При открытии созданных макросом файлов - выходит предупреждение: "Формат файла не соответвует разрешению файла. Возможно файл поврежден или не безопасен...и т.д. и т.п." Полагаю, что это из за того что макрос старый и создает книгу старой версии. Помогите пожалуйста, разобраться, как исправить макрос, чтобы создавались нормальные файлы, чтобы не выходило это предупреждение. Подскажите плиз, как добавить в макрос код, который будет создавать папку с названием как у файла, и помещать в нее этот файл.
В файле, в окне запроса -указываю ссылку сначала на A4, потом на E4
fedoseevp, поставьте Параметр вычисления -Вручную (Формулы-Параметр вычисления-Вручную). После внесения новых данных, нажимаете F9 -таблица пересчитывается, результаты обновляются.
вопрос снимается, эмпирическим путем выявлено, что функция ДВССЫЛ бесполезна в применении с Именами, т.к. сразу вычисляет ссылку и вставляет ее в формулу. Решение нашлось в том, чтобы вставить функцию СМЕЩ сразу в Источник проверки данных.
Sanja, проверила еще раз, большая формула работает, но есть одно НО- при протягивании формулы вниз по строкам, неправильно вычисляется ссылка в этой формуле, которая должна изменятся.
Sanja, спасибо, проверила, монстр не работает, и вспомогательные имена тоже не работают (ошибка при вычислении источника). Видимо выход один, создать пары листов с разными именами на уровне листа, и ненужное скрыть...
Добрый день, помогите плиз, решить проблему сваяла таблицу, в ней есть выпадающие списки, которые вычисляются с помощью именованной формулы СМЕЩ. В этой формуле есть ссылка на лист Меню 29.02-04.03, и на текущий лист 29.02-04.03. Можно ли как то в эту формулу прописать вычисление ссылки на текущий и соседний листы, чтобы при копировании этих двух листов и переименовании их, правильно вычислялись ссылки на листы, и диапазон для выпадающего списка?
именованная формула СМЕЩ =СМЕЩ('Меню 29.02-04.03'!$C$2;ПОИСКПОЗ('29.02-04.03'!$A1;'Меню 29.02-04.03'!$A:$A;0)-2;1;СЧЁТЕСЛИ('Меню 29.02-04.03'!$A:$A;'29.02-04.03'!$A1);1)
формула имени текущего листа: =ПСТР(ЯЧЕЙКА("filename";A2);ПОИСК("]";ЯЧЕЙКА("filename";A2))+1;31)
формула имени соседнего листа ="Меню "&ПСТР(ЯЧЕЙКА("filename";A2);ПОИСК("]";ЯЧЕЙКА("filename";A2))+1;31)
если формулы имен листов вставить в именованную формулу СМЕЩ, то программа виснет, и ничего не происходит.
сделала такую штучку (не знаю правильно или нет, хоть и работает) , помогите пожалуйста преобразовать формулу в макрос, чтобы вставить вместо строки 23
Код
Sub дата1()
Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim iNumber As String
Dim arr(1 To 7) As Variant
arr(1) = "понедельник"
arr(2) = "вторник"
arr(3) = "среда"
arr(4) = "четверг"
arr(5) = "пятница"
arr(6) = "суббота"
arr(7) = "воскресенье"
LastRow = Cells(Rows.Count, 3).End(xlUp).Row
For i = 1 To 7
iNumber = arr(i)
For j = 1 To LastRow
If Cells(j, 3) Like "*" & iNumber & "*" Then
Cells(j, 1) = Cells(j, 3)' тут вставить ======================
End If
Next j
Next i
End Sub
добрый день, помогите плиз, сделать макрос, который будет искать в столбце "B" дни недели по очереди (например, сначала -"понедельник"), при нахождении строки содержащей "понедельник", например значение "понедельник, 29 февраля", преобразовывать это значение в дату вида "29.02.2016" и вставлять эту дату в ячейку слева, напротив найденного значения, .
пример прилагается. в примере Лист1 -исходные данные, Лист2-как выглядит результат.