В просторах интернета нашел подходящий макрос практически решающую текущую задачку: Копирование строк (с третьего столбца) и шапкой таблицы (с первой по третью строки) в отдельный файл с добавлением в название ФИО и текущей даты при наличии значения в столбце ФИО. Мудрено, знаю. На одном дыхании писал =)
Интуитивно частично удалось подправить макрос самому под свою задачку: добавил текущую дату, расширение выходного файла, ну и ссылку на нужный столбец ФИО. Дальнейшие попытки решить свою задачку сводится к тому, что или макрос ругается, или считает только пустые строки или вообще не работает макрос.
Подскажите, пожалуйста, как правильно подпилить макрос: 1. Чтобы пустые строки не обрабатывались в отдельный файл; 2. Копировал в отдельный файл только в виде значения (т.к. есть формулы, выдает #ССЫЛКА); 3. Копировались строки с первой по третью (это шапка) + отдельная строка с ФИО; 4. Или скрыть первые два столбца или их не копировать
Добрый вечер, участникам форума!
В просторах интернета нашел подходящий макрос практически решающую текущую задачку: Копирование строк (с третьего столбца) и шапкой таблицы (с первой по третью строки) в отдельный файл с добавлением в название ФИО и текущей даты при наличии значения в столбце ФИО. Мудрено, знаю. На одном дыхании писал =)
Интуитивно частично удалось подправить макрос самому под свою задачку: добавил текущую дату, расширение выходного файла, ну и ссылку на нужный столбец ФИО. Дальнейшие попытки решить свою задачку сводится к тому, что или макрос ругается, или считает только пустые строки или вообще не работает макрос.
Подскажите, пожалуйста, как правильно подпилить макрос: 1. Чтобы пустые строки не обрабатывались в отдельный файл; 2. Копировал в отдельный файл только в виде значения (т.к. есть формулы, выдает #ССЫЛКА); 3. Копировались строки с первой по третью (это шапка) + отдельная строка с ФИО; 4. Или скрыть первые два столбца или их не копироватьAnis625
1. Чтобы пустые строки не обрабатывались в отдельный файл;
декорируйте :
[vba]
Код
With Workbooks.Add ws.Rows(i).Copy .Worksheets(1).Range("A1") .SaveAs ThisWorkbook.Path & "\Мониторинг показателей " & .Worksheets(1).Range("D1") & " на " & Format(Date, "DD.MM.YYYY") & ".xlsx" .Close 0 End With
[/vba] так: [vba]
Код
If Строка_Целиком_Пустая(ws.Rows(i)) = False Then
With Workbooks.Add ws.Rows(i).Copy .Worksheets(1).Range("A1") .SaveAs ThisWorkbook.Path & "\Мониторинг показателей " & .Worksheets(1).Range("D1") & " на " & Format(Date, "DD.MM.YYYY") & ".xlsx" .Close 0 End With End If
[/vba]
в модуль добавьте:
[vba]
Код
Public Function Строка_Целиком_Пустая(ByVal r As Range) _ As Boolean ' Тестом покрыто
Строка_Целиком_Пустая = Диап_Пуст(r.EntireRow)
End Function
Public Function Диап_Пуст(ByVal r As Range) _ As Boolean ' Тестом покрыто
1. Чтобы пустые строки не обрабатывались в отдельный файл;
декорируйте :
[vba]
Код
With Workbooks.Add ws.Rows(i).Copy .Worksheets(1).Range("A1") .SaveAs ThisWorkbook.Path & "\Мониторинг показателей " & .Worksheets(1).Range("D1") & " на " & Format(Date, "DD.MM.YYYY") & ".xlsx" .Close 0 End With
[/vba] так: [vba]
Код
If Строка_Целиком_Пустая(ws.Rows(i)) = False Then
With Workbooks.Add ws.Rows(i).Copy .Worksheets(1).Range("A1") .SaveAs ThisWorkbook.Path & "\Мониторинг показателей " & .Worksheets(1).Range("D1") & " на " & Format(Date, "DD.MM.YYYY") & ".xlsx" .Close 0 End With End If
[/vba]
в модуль добавьте:
[vba]
Код
Public Function Строка_Целиком_Пустая(ByVal r As Range) _ As Boolean ' Тестом покрыто
Строка_Целиком_Пустая = Диап_Пуст(r.EntireRow)
End Function
Public Function Диап_Пуст(ByVal r As Range) _ As Boolean ' Тестом покрыто
Пустые не копирует, но если хотя бы в какой нибудь ячейке есть значение (например название таблицы в первой строке или если ниже через пустую строку есть еще одна такая же таблицы со своей шапкой) копирует строку в отдельный файл.
InExSu,
Пустые не копирует, но если хотя бы в какой нибудь ячейке есть значение (например название таблицы в первой строке или если ниже через пустую строку есть еще одна такая же таблицы со своей шапкой) копирует строку в отдельный файл.Anis625
Переложил на свой файл и получилось то, что нужно, с небольшими нюансами:
1. При копировании информации копируется все как надо кроме название таблицы =) 2. Ширина столбцов не переносится и объединение ячеек. Хотя условное форматирование перенеслось отлично =)
Возможно ли это подпилить?
InExSu,
Переложил на свой файл и получилось то, что нужно, с небольшими нюансами:
1. При копировании информации копируется все как надо кроме название таблицы =) 2. Ширина столбцов не переносится и объединение ячеек. Хотя условное форматирование перенеслось отлично =)