Я бы хотел, чтобы мое изображение было правильно изменено и окаймлено черной линией, толщиной 1.
Моя ситуация выглядит следующим образом:
и когда я использовал этот код:
Sub ResizeCivilsA()
SizeToRange Sheets("Civils 1").Pictures("Picture 29"), Range("B3:L46")
End Sub
Function SizeToRange(s, Target As Range)
s.Left = Target.Left + 10
s.Top = Target.Top - 5
s.Width = Target.Width
s.Height = Target.Height
End Function
, все было настроено нормально, но:
- Это было сделано только для указанного идентификатора формы, который это "Изображение 29"
- Это было без границ
Итак, я попытался:
Sub ResizeCivilsA()
Dim shp As Shape
For Each shp In ThisWorkbook.Worksheets
If shp.Name Like "*Picture*" Then
SizeToRange shp, Range("B3:L46")
End If
Next
и, наконец, я получаю ошибку: Тип несоответствие , с отладчиком, указывающим линию:
For Each shp In ThisWorkbook.Worksheets
Что касается границы вокруг изображения, я нашел общее решение здесь:
https://docs.microsoft.com/en-us/office/vba/api/Excel.Range.BorderAround
Однако после того, как прибор вошел в мою работу:
Worksheets("Civils 1").Shape("Picture 29").BorderAround _
ColorIndex:=3, Weight:=xlThick
этого было недостаточно, так как мне пришлось удалить _
и потом ничего не получил.
Есть ли какой-то способ иметь возможность мгновенного изменения размера изображения и создания рамки вокруг него для ЛЮБОГО прикрепленного изображения, которое по умолчанию называется «Изображение ...»?