Страницы: 1
RSS
Упрощение макроса вставки картинок по критерию
 
Здравствуйте, есть макрос копирования картинок по критерию и централизация картинок в ячейке, который работает, но чем больше строк тем больше нагрузка, соответственно медленнее и тд. Вопрос: Есть ли вариант упрощения или улучшение данного макроса? Подобных строк, как в файле, 300+
Код
Sub Вставка2()
Dim i&, r As Range, shp As Shape
    For i = 4 To 393
        Set r = Sheets(2).Cells.Find(Cells(i, 3).Value, LookAt:=xlWhole)
        For Each shp In Sheets(2).Shapes
            If shp.TopLeftCell.Address = r.Next.Address Then
                shp.Copy
                Cells(i, 2).PasteSpecial xlPasteAll
            End If
        Next
    Next
Dim sh As Shape, ph#, pw, ch#, cw#, px#, py#
      For Each sh In ActiveSheet.Shapes
    If sh.Type = msoDiagram Then sh.Select False
    ph = sh.Height: pw = sh.Width
    ch = sh.TopLeftCell.MergeArea.Height: cw = sh.TopLeftCell.MergeArea.Width
    px = sh.TopLeftCell.MergeArea.Left + (cw - pw) / 2
    py = sh.TopLeftCell.MergeArea.Top + (ch - ph) / 2
    sh.Left = px
    sh.Top = py
      Next
End Sub
Изменено: Сергей Тихомиров - 25.08.2022 10:08:12
 
Первое, что приходит в голову:

Код
        For Each shp In Sheets(2).Shapes
            If shp.TopLeftCell.Address = r.Next.Address Then
                shp.Copy
                Cells(i, 2).PasteSpecial xlPasteAll
                Exit for
            End If
        Next
Если в столбце "обозначение" не повторяются значения, естественно
 
No Name, Спасибо
Страницы: 1
Наверх