Доброго времени суток, друзья! Прошу помочь с выполнением следующей задачи через макрос. Имеется огромное количество (более ста) файлов (я для примера поместил два в папку "Рабочая книга"), в которые необходимо в одинаковую область, в моем примере P13:Q17 вставить текст и изображения из аналогичной области исходной книги "изображения". Сделать это вручную можно, но во-первых долго, во-вторых с течением времени количество строк диапазона и содержание данного диапазона будут менять. Можно ли сделать замену через макрос, чтобы, например, при выполнении макроса весь текст диапазона P13:Q1000 автоматически заменял изображения и текст во всех книгах, которые лежат в папке. Файлы во вложении. Заранее благодарю за помощь!
Доброго времени суток, друзья! Прошу помочь с выполнением следующей задачи через макрос. Имеется огромное количество (более ста) файлов (я для примера поместил два в папку "Рабочая книга"), в которые необходимо в одинаковую область, в моем примере P13:Q17 вставить текст и изображения из аналогичной области исходной книги "изображения". Сделать это вручную можно, но во-первых долго, во-вторых с течением времени количество строк диапазона и содержание данного диапазона будут менять. Можно ли сделать замену через макрос, чтобы, например, при выполнении макроса весь текст диапазона P13:Q1000 автоматически заменял изображения и текст во всех книгах, которые лежат в папке. Файлы во вложении. Заранее благодарю за помощь!cyraxs
Sub ЭкспортДанных() Dim Shape As Shape, SourceShape As Shape Dim FolderPath As String: FolderPath = ThisWorkbook.Path & "\Рабочая книга" & "\" Dim SourceWS As Worksheet: Set SourceWS = ThisWorkbook.Worksheets("Лист1") Dim sRow As Long: sRow = SourceWS.Cells(SourceWS.Rows.Count, "P").End(xlUp).Row Dim SourceRange As Range: Set SourceRange = SourceWS.Range("P13:Q" & sRow) ' Измените область по своему усмотрению Dim FileName As String: FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> "" Application.ScreenUpdating = False Dim DestWB As Workbook: Set DestWB = Workbooks.Open(FolderPath & FileName) Dim DestWS As Worksheet: Set DestWS = DestWB.Worksheets("Лист1") Dim DestRange As Range: Set DestRange = DestWS.Range("P13:Q" & sRow) ' Измените область по своему усмотрению
For Each Shape In DestWS.Shapes Shape.Delete Next Shape
Sub ЭкспортДанных() Dim Shape As Shape, SourceShape As Shape Dim FolderPath As String: FolderPath = ThisWorkbook.Path & "\Рабочая книга" & "\" Dim SourceWS As Worksheet: Set SourceWS = ThisWorkbook.Worksheets("Лист1") Dim sRow As Long: sRow = SourceWS.Cells(SourceWS.Rows.Count, "P").End(xlUp).Row Dim SourceRange As Range: Set SourceRange = SourceWS.Range("P13:Q" & sRow) ' Измените область по своему усмотрению Dim FileName As String: FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> "" Application.ScreenUpdating = False Dim DestWB As Workbook: Set DestWB = Workbooks.Open(FolderPath & FileName) Dim DestWS As Worksheet: Set DestWS = DestWB.Worksheets("Лист1") Dim DestRange As Range: Set DestRange = DestWS.Range("P13:Q" & sRow) ' Измените область по своему усмотрению
For Each Shape In DestWS.Shapes Shape.Delete Next Shape
MikeVol, то что нужно!! Только есть один нюанс который я не учел сначала. Наименование самого листа в моих изначальных файлах "лист1", а фактически имена другие. Можно скорректировать макрос, чтоб он работал для всех листов всех файлов в папке, не зависимо от имени листа?
MikeVol, то что нужно!! Только есть один нюанс который я не учел сначала. Наименование самого листа в моих изначальных файлах "лист1", а фактически имена другие. Можно скорректировать макрос, чтоб он работал для всех листов всех файлов в папке, не зависимо от имени листа?cyraxs
cyraxs, В следуйщий раз соберите свою хотелку в одно понятное предложение! [vba]
Код
Option Explicit
Sub ЭкспортДанныхВоВсеЛисты() Dim DestWS As Worksheet Dim Shape As Shape, SourceShape As Shape Dim FolderPath As String: FolderPath = ThisWorkbook.Path & "\Рабочая книга" & "\" Dim SourceWS As Worksheet: Set SourceWS = ThisWorkbook.Worksheets("Лист1") Dim sRow As Long: sRow = SourceWS.Cells(SourceWS.Rows.Count, "P").End(xlUp).Row Dim SourceRange As Range: Set SourceRange = SourceWS.Range("P13:Q" & sRow) Dim FileName As String: FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> "" Application.ScreenUpdating = False Dim DestWB As Workbook: Set DestWB = Workbooks.Open(FolderPath & FileName)
' Перебераем все листы в Книгах приёмкниках For Each DestWS In DestWB.Worksheets Dim DestRange As Range: Set DestRange = DestWS.Range("P13:Q" & sRow)
For Each Shape In DestWS.Shapes Shape.Delete Next Shape
cyraxs, В следуйщий раз соберите свою хотелку в одно понятное предложение! [vba]
Код
Option Explicit
Sub ЭкспортДанныхВоВсеЛисты() Dim DestWS As Worksheet Dim Shape As Shape, SourceShape As Shape Dim FolderPath As String: FolderPath = ThisWorkbook.Path & "\Рабочая книга" & "\" Dim SourceWS As Worksheet: Set SourceWS = ThisWorkbook.Worksheets("Лист1") Dim sRow As Long: sRow = SourceWS.Cells(SourceWS.Rows.Count, "P").End(xlUp).Row Dim SourceRange As Range: Set SourceRange = SourceWS.Range("P13:Q" & sRow) Dim FileName As String: FileName = Dir(FolderPath & "*.xls*")
Do While FileName <> "" Application.ScreenUpdating = False Dim DestWB As Workbook: Set DestWB = Workbooks.Open(FolderPath & FileName)
' Перебераем все листы в Книгах приёмкниках For Each DestWS In DestWB.Worksheets Dim DestRange As Range: Set DestRange = DestWS.Range("P13:Q" & sRow)
For Each Shape In DestWS.Shapes Shape.Delete Next Shape
MikeVol, прошу прощения, но не решился вопрос... Во всех вложениях, оказывается, картинки в формате wmf, а не jpeg, а макрос переносит в картинки растровые, а не векторные.
MikeVol, прошу прощения, но не решился вопрос... Во всех вложениях, оказывается, картинки в формате wmf, а не jpeg, а макрос переносит в картинки растровые, а не векторные.cyraxs
MikeVol, Добрый день! Еще раз благодарю за помощь, но сегодня в работе макроса была обнаружена несостыковка. При его выполнении происходит "уничтожение" всех картинок к применяемым листам, которые находятся вне диапазона P13:Q. А необходима замена изображения только к диапазону P13:Q. Возможно поправить макрос?
MikeVol, Добрый день! Еще раз благодарю за помощь, но сегодня в работе макроса была обнаружена несостыковка. При его выполнении происходит "уничтожение" всех картинок к применяемым листам, которые находятся вне диапазона P13:Q. А необходима замена изображения только к диапазону P13:Q. Возможно поправить макрос?cyraxs