Я ищу способ изменения размеров таблиц, которые пересматриваются и ежедневно вставляются в отчет. Вот описание моей цели, проблемы и предлагаемого решения (что я не могу понять, как кодировать).
МОЯ ЗАДАЧА: моему коду необходимо - 1) скопировать изображение таблицы с именем TABLE A из таблицы TABLE, а затем - 2) вставить изображение TABLE A в ячейку B2 на Выходной лист, затем - 3) измените размер вставленной ТАБЛИЦЫ A Изображение. ПОЗЖЕ, когда - 1) лист ВЫХОДА активируется следующим образом, - 2) удалить все Изображения на Листе ВЫХОДА, включая существующую ТАБЛИЦУ A Изображение, вставленное в Ячейку B2 (этот код был опущен для краткости), и - 3) скопировать новая и обновленная ТАБЛИЦА А из таблицы ТАБЛИЦА, затем - 4) вставьте только что скопированное изображение ТАБЛИЦЫ А в В2 на листе ВЫХОД, затем - 5) измените размер вновь вставленной ТАБЛИЦЫ А до точных размеров применительно к ранее вставленной, но теперь удалено ТАБЛИЦА А. ПРОБЛЕМА: VBA назначает имя изображения в качестве ShapeRange (скажем, «Изображение 1» или «ShapeRange (1)) для исходного TABLE A Изображение, вставленное в выходной лист, затем после« Изображение 1 »было удалено, VBA назначает другое Имя или ShapeRange (скажем,« Изображение 2 »или« ShapeRange (2)) новой копии каждой обновленной таблицы TABLE A, скопированной из таблицы TABLE и вставленной в то же место на выходной лист. К сожалению, мой код изменения размера изображения VBA (или ShapeRange) не может распознать, что имя изображения изменилось, поэтому он попытается, как в этом примере, изменить размер «изображения 1» (которого больше не существует) вместо недавно вставленного «Изображение 2». РАЗРЕШЕНИЕ: Мне либо нужен код, который делает имя каждого нового изображения, копируемого / вставляемого в указанное c расположение на Листе ВЫХОДА, всегда одинаковым Именем поскольку изображение, ранее удаленное из того же места (например, каждый новый TABLE A, вставленный в лист OUTPUT, всегда называется «рисунок 1»), ИЛИ код изменения размера изменяется, так что он распознает и применим к любому новому имени, которое VBA назначает каждому новому скопированный TABLE A Изображение, которое вставляется в выходной лист, заменяя ранее удаленное имя изображения.
Решение этой проблемы будет высоко ценится?
'Copies TABLE Picture and Pastes on OUTPUT Worksheet
Worksheets("TABLE").Range("a1:O29").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Worksheets("OUTPUT").Paste _
Destination:=Worksheets("OUTPUT").Range("B2")
'Resizes TABLE Picture on OUTPUT Worksheet
Dim Shp As Shape
Dim lWidth As Long, lHeight As Long
Set Shp = ActiveWindow.Selection.ShapeRange(1)
lHeight = Shp.Height
lWidth = Shp.Width
hp.Height = 3 * 72 * lHeight / lWidth
Shp.Width = 4.75 * 72
'Copies CHART Picture and Pastes on OUTPUT Worksheet
Worksheets("CHART").Range("A1:j17").CopyPicture Appearance:=xlScreen, Format:=xlPicture
Worksheets("OUTPUT").Paste _
Destination:=Worksheets("OUTPUT").Range("B18")
End Sub```