Всем добрый день, имею пару макросов которые красиво работают в своих вариантах, но есть один макрос который хорошо делает експорт с включеными фильтрами и мен этио очень удобно, беда в том что он копирует ссылки на данные, а нужно что бы вставлял именно значения Пример макроса который сейчас [vba]
Код
Sub Експорт() Prefix = "C:\Documents and Settings\All Users\Desktop\" Suffix = ".xlsm" Name = Sheets("ст.2").Range("A1") NewFileName = Prefix & Name & Suffix ActiveSheet.Copy ActiveSheet.UsedRange.Value = Sheets("ст.2").UsedRange.Value Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Вибраний лист збережено на робочий стіл. " & "Назва кінцевого файлу: " & Name & Suffix, , ""
End Sub
[/vba]
Подскажите пожалуйста как вставить сюда эту часть макроса что бы он вставлял только значения или может есть еще какое решение. Буду признателен. Спасибо. [vba]
Всем добрый день, имею пару макросов которые красиво работают в своих вариантах, но есть один макрос который хорошо делает експорт с включеными фильтрами и мен этио очень удобно, беда в том что он копирует ссылки на данные, а нужно что бы вставлял именно значения Пример макроса который сейчас [vba]
Код
Sub Експорт() Prefix = "C:\Documents and Settings\All Users\Desktop\" Suffix = ".xlsm" Name = Sheets("ст.2").Range("A1") NewFileName = Prefix & Name & Suffix ActiveSheet.Copy ActiveSheet.UsedRange.Value = Sheets("ст.2").UsedRange.Value Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Вибраний лист збережено на робочий стіл. " & "Назва кінцевого файлу: " & Name & Suffix, , ""
End Sub
[/vba]
Подскажите пожалуйста как вставить сюда эту часть макроса что бы он вставлял только значения или может есть еще какое решение. Буду признателен. Спасибо. [vba]
к сожалению рвет структуру документа, данные переносятся не верно Вся проблема в том что фильтра у меня там включены постоянно, и отключать их мне крайне не удобно.
к сожалению рвет структуру документа, данные переносятся не верно Вся проблема в том что фильтра у меня там включены постоянно, и отключать их мне крайне не удобно.Santtic
ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If
[/vba]
Тогда так вместо той строки [vba]
Код
ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If
если ставлю вместо той строки, то выдает ошибку юху, спасибо вам большое, все сработало, не так вставил. Спасибо огромное, работает так как хотелось)Santtic
Сообщение отредактировал Santtic - Среда, 29.05.2019, 16:26
Всем добрый день, не могу понять, почему один и тот же макрос работает по разному, а именно при експорте листа меняет имя листа в рабочей книге. Имя которое находиться в ячейке U1 сформировано с помощью формулы слияния ячеек. Мне удоюбно было бы, если бы лист в рабочей книге оставался с прежним именем. [vba]
Код
Sub Експорт() Prefix = "C:\Documents and Settings\All Users\Desktop\" Suffix = ".xlsm" Name = Sheets("Паспорта").Range("U1") NewFileName = Prefix & Name & Suffix ActiveSheet.Copy Application.DisplayAlerts = False ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Вибраний лист збережено на робочий стіл. " & "Назва кінцевого файлу: " & Name & Suffix, , ""
End Sub
[/vba]
Всем добрый день, не могу понять, почему один и тот же макрос работает по разному, а именно при експорте листа меняет имя листа в рабочей книге. Имя которое находиться в ячейке U1 сформировано с помощью формулы слияния ячеек. Мне удоюбно было бы, если бы лист в рабочей книге оставался с прежним именем. [vba]
Код
Sub Експорт() Prefix = "C:\Documents and Settings\All Users\Desktop\" Suffix = ".xlsm" Name = Sheets("Паспорта").Range("U1") NewFileName = Prefix & Name & Suffix ActiveSheet.Copy Application.DisplayAlerts = False ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Вибраний лист збережено на робочий стіл. " & "Назва кінцевого файлу: " & Name & Suffix, , ""
Ума не приложу, в одном файле макрос работает четко, а в другом, ничего не могу придумать. Тут у меня правда еще через диспетчер имен фотографии появляются в файле, но не думаю что причина в нем.
Ума не приложу, в одном файле макрос работает четко, а в другом, ничего не могу придумать. Тут у меня правда еще через диспетчер имен фотографии появляются в файле, но не думаю что причина в нем.Santtic
Все просто. Не нужно называть переменные так, как хочется Вам. Нужно сначала спросить VBA - а не занято ли это имя? Найдите одно отличие от своего кода (в 3-х местах). Путь не считается Ну и сообщение покрасивше теперь пишется [vba]
Код
Sub Експорт() Prefix = "g:\Моя\Стереть\" Suffix = ".xlsm" Name_ = Sheets("Паспорта").Range("U1") NewFileName = Prefix & Name_ & Suffix ActiveSheet.Copy ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Вибраний лист збережено на робочий стіл." & vbLf & "Назва кінцевого файлу: " & vbLf & "''" & Name_ & Suffix & "''" End Sub
[/vba]
Все просто. Не нужно называть переменные так, как хочется Вам. Нужно сначала спросить VBA - а не занято ли это имя? Найдите одно отличие от своего кода (в 3-х местах). Путь не считается Ну и сообщение покрасивше теперь пишется [vba]
Код
Sub Експорт() Prefix = "g:\Моя\Стереть\" Suffix = ".xlsm" Name_ = Sheets("Паспорта").Range("U1") NewFileName = Prefix & Name_ & Suffix ActiveSheet.Copy ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Вибраний лист збережено на робочий стіл." & vbLf & "Назва кінцевого файлу: " & vbLf & "''" & Name_ & Suffix & "''" End Sub
[/vba]не дает Excel-ю выводить сообщения (для нашего случая - когда такой файл уже есть). Об этом можно почитать в справке Принципиальное отличие одно - в строке [vba]
Код
Name_ = Sheets("Паспорта").Range("U1")
[/vba]Как у Вас обзывается переменная? И как у меня? Я ж не зря написал
Не нужно называть переменные так, как хочется Вам. Нужно сначала спросить VBA - а не занято ли это имя?
В VBA уже есть оператор Name, а Вы так назвали переменную. Вот он и путается, в Вашем случае пытается переименовать лист
[vba]
Код
Application.DisplayAlerts = False
[/vba]не дает Excel-ю выводить сообщения (для нашего случая - когда такой файл уже есть). Об этом можно почитать в справке Принципиальное отличие одно - в строке [vba]
Код
Name_ = Sheets("Паспорта").Range("U1")
[/vba]Как у Вас обзывается переменная? И как у меня? Я ж не зря написал
Всем добрый день. Все еще нужна помощь в одном решении проблемы. Мой макрос работает хорошо, но решил я прописать формулу в ячейку O1 что бы получить название файла в котором будет содержание данной ячейки и макрос теперь ругается, что можно сделать? [vba]
Код
Sub Åêñïîðò() Prefix = "E:\ÓÃÂ\³äïðàâêà\" NewFileName = Prefix & Name & Suffix & Range("O1") & ".xlsm" ActiveSheet.Copy Application.DisplayAlerts = False ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Âèáðàíèé ëèñò çáåðåæåíî â ïàïêó â³äïðàâêà. " & "Íàçâà ê³íöåâîãî ôàéëó: " & Name & Suffix, , ""
End Sub
[/vba] а это формула, которая формирует название файла
и все, макрос выдает ошибку...в одном из перечни пишется, что имя файла не может содержать знаки <>* / но я специально использую эту формулу что бы не было таких знаков. Всем спасибо за помощь.
Всем добрый день. Все еще нужна помощь в одном решении проблемы. Мой макрос работает хорошо, но решил я прописать формулу в ячейку O1 что бы получить название файла в котором будет содержание данной ячейки и макрос теперь ругается, что можно сделать? [vba]
Код
Sub Åêñïîðò() Prefix = "E:\ÓÃÂ\³äïðàâêà\" NewFileName = Prefix & Name & Suffix & Range("O1") & ".xlsm" ActiveSheet.Copy Application.DisplayAlerts = False ls_ = ActiveWorkbook.LinkSources(xlExcelLinks) If Not IsEmpty(ls_) Then For i = 1 To UBound(ls_) ActiveWorkbook.BreakLink Name:=ls_(i), Type:=xlExcelLinks Next i End If ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=False Application.DisplayAlerts = True MsgBox "Âèáðàíèé ëèñò çáåðåæåíî â ïàïêó â³äïðàâêà. " & "Íàçâà ê³íöåâîãî ôàéëó: " & Name & Suffix, , ""
End Sub
[/vba] а это формула, которая формирует название файла
и все, макрос выдает ошибку...в одном из перечни пишется, что имя файла не может содержать знаки <>* / но я специально использую эту формулу что бы не было таких знаков. Всем спасибо за помощь.Santtic
Сообщение отредактировал Santtic - Среда, 15.01.2020, 17:57