79076440

Date: 2024-10-10 23:44:56
Score: 0.5
Natty:
Report link

Even if you group objects together, it takes a lot of time if there are a lot of objects.

    strTemp = .PageSetup.PrintArea
    Set rngU = .UsedRange
    If Len(strTemp) = 0 Then
        Dim B As Byte
        sCnt = .Shapes.Count
        If sCnt > 1 Then '사진 도형등을 포함하여 사용자범위를 찾는다
            .DrawingObjects.Group
            B = 1
            sCnt = 1
        End If
        If sCnt > 0 Then '사진 도형등을 포함하여 사용자범위를 찾는다
            rxUsdNum = rngU.Rows.Count
            cxUsdNum = rngU.Columns.Count
            For Each Shp In .Shapes
                sr = WorksheetFunction.Max(sr, Shp.BottomRightCell.Row, rxUsdNum)
                sc = WorksheetFunction.Max(sc, Shp.BottomRightCell.Column, cxUsdNum)
            Next
            Set rngUsed = .Range(.Range(.Cells(1), rngU), .Cells(sr, sc))
            If B Then .DrawingObjects.Ungroup
        Else
            Set rngUsed = .Range(.Cells(1), rngU)
        End If
    Else
        Set rngUsed = .Range(strTemp)
    End If
Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: 강호의 iDEVICE 3