Excel 2003, 범위의 왼쪽 상단과 오른쪽 하단을 얻는 방법은 무엇입니까?

스플래 튼

모양이 배치되어 있는지 확인하고 싶은 범위가 있습니다.

온라인에서 스크립트를 찾았 지만 ( http://www.mrexcel.com/forum/excel-questions/317711-visual-basic-applications-identify-top-left-cell-selected-range.html ) Excel 2003에서 작동합니다. 지금까지 발견 된 스크립트에서 수정 된 코드 :

    Public Function removeOLEtypesOfType() As Boolean
        On Error Resume Next

        Dim objTopLeft As Range, objBotRight As Range _
          , objRange As Range, objShape As Shape
        Set objRange = Sheet1.Range(COLUMN_HEADINGS)
        objRange.Select

        With Selection
            Dim intFirstCol As Integer, intFirstRow As Integer _
              , intLastCol As Integer, intLastRow As Integer
            intFirstCol = .Column
            intFirstRow = .Row
            Set objTopLeft = .Cells(intFirstRow, intFirstCol) '.Address(0, 0)
            intLastCol = .Columns.Count + .Column - 1
            intLastRow = .Rows.Count + .Row - 1
            Set objBotRight = .Cells(intLastRow, intLastCol) '.Address(0, 0)

            If objTopLeft Is Nothing Or objBotRight Is Nothing Then
                MsgBox "Cannot get topleft or bottom right of range!", vbExclamation
                removeOLEtypesOfType = False
                Exit Function
            End If
            For Each objShape In ActiveSheet.Shapes
                Dim objTLis As Range
                Set objTLis = Intersect(objTopLeft, objShape.TopLeftCell)

                If Not objTLis Is Nothing Then
                    Dim objBRis As Range
                    Set objBRis = Intersect(objBotRight, objShape.BottomRightCell)

                    If Not objBRis Is Nothing Then
                        objShape.Delete
                    End If
                End If
            Next
        End With
        Sheet1.Cells(1, 1).Select
        removeOLEtypesOfType = True
    End Function

objTopLeft 및 objBotRight는 모두 Nothing이고 COLUMN_HEADINGS에는 범위 이름이 포함됩니다.

디버거에서 intFirstCol, intFirstRow, intLastCol 및 intLastRow를 확인했으며 정확합니다.

편집 ... .Address가 주석 처리 된 경우 왼쪽 상단과 오른쪽 아래 범위가 모두 반환되지만 .Address가 입력되면 둘 다 Nothing입니다. 반환 된 범위가 올바른 위치에 대한 것이 아닙니다.

예를 들어 제공된 범위의 경우 :

    intFirstCol = 3
    intFirstRow = 11
    intLastCol = 3
    intLastRow = 186

그러나 위의 내용은 정확합니다.

    objTopLeft.Column = 5
    objTopLeft.Row = 21
    objBotRight.Column = 5
    objBotRight.Row = 196

위의 내용이 올바르지 않고 열이 +2이고 행이 +10입니다. 왜 그런가요?

스플래 튼

결정된:

    Public Function removeOLEtypesOfType() As Boolean
        On Error Resume Next

        Dim objTopLeft As Range, objBotRight As Range _
          , objRange As Range, objShape As Shape
        Set objRange = Sheet1.Range(COLUMN_HEADINGS)
        objRange.Select

        With Selection
            Set objTopLeft = .Cells(1)
            Set objBotRight = .Cells(.Cells.Count)

            If objTopLeft Is Nothing Or objBotRight Is Nothing Then
                MsgBox "Cannot get topleft or bottom right of range!", vbExclamation
                removeOLEtypesOfType = False
                Exit Function
            End If
            For Each objShape In ActiveSheet.Shapes
                Dim blnTLcol As Boolean, blnTLrow As Boolean _
                  , blnBRcol As Boolean, blnBRrow As Boolean
                blnTLcol = (objShape.TopLeftCell.Column >= objTopLeft.Column)
                blnTLrow = (objShape.TopLeftCell.Row >= objTopLeft.Row)
                blnBRcol = (objShape.BottomRightCell.Column <= objBotRight.Column)
                blnBRrow = (objShape.BottomRightCell.Row <= objBotRight.Row)
                If blnTLcol = True And blnTLrow = True _
                And blnBRcol = True And blnBRrow = True Then
                    objShape.Delete
                End If
            Next
        End With
        Sheet1.Cells(1, 1).Select
        removeOLEtypesOfType = True
    End Function

감사합니다 @Ambie 루틴을 단순화했으며 이것이 문제가 아니지만 코드를 정리하는 데 도움이 되었기 때문에 답을 줄 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스택의 자식을 오른쪽 하단 또는 왼쪽 하단에 배치하는 방법은 무엇입니까? (반응 형)

분류에서Dev

키보드 단축키를 사용하여 창을 왼쪽 / 오른쪽의 다른 모니터로 이동하는 방법은 무엇입니까?

분류에서Dev

키보드 단축키를 사용하여 창을 왼쪽 / 오른쪽의 다른 모니터로 이동하는 방법은 무엇입니까?

분류에서Dev

MS Word 표 : 왼쪽 상단에 새 셀을 삽입 한 후 자동으로 셀을 오른쪽과 아래로 이동하는 방법은 무엇입니까?

분류에서Dev

상단과 하단의 두 부분으로 왼쪽 영역을 만들기 위해 원근을 배치하는 방법은 무엇입니까?

분류에서Dev

마우스 포인터의 오른쪽 / 왼쪽에 전단지 팝업을 표시하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 픽셀에서 왼쪽 / 오른쪽 / 위쪽 / 아래쪽 속성 값을 얻는 방법은 무엇입니까?

분류에서Dev

offsetParent div의 상단 및 왼쪽 속성을 얻는 방법은 무엇입니까?

분류에서Dev

결과 / 오른쪽 내부에서 조건 / 왼쪽에 정의 된 모든 잠꼬대 변수 목록을 얻는 방법은 무엇입니까?

분류에서Dev

iOS XCTest 단위 테스트에서 오른쪽에서 왼쪽으로 쓰는 언어를 테스트하는 방법은 무엇입니까?

분류에서Dev

내 div 상자의 오른쪽 하단으로 버튼을 이동하는 방법은 무엇입니까?

분류에서Dev

TableLayoutPanel에서 셀의 왼쪽 위치를 양식의 픽셀 단위로 얻는 방법은 무엇입니까?

분류에서Dev

왼쪽 alt를 오른쪽 alt처럼 만드는 단축키를 만드는 방법은 무엇입니까?

분류에서Dev

nativescript의 오른쪽 상단에 닫기 버튼을 사용하는 방법은 무엇입니까?

분류에서Dev

CSS : 왼쪽과 오른쪽에있는 표의 윤곽선 테두리 서식을 지정하고 제거하는 방법은 무엇입니까?

분류에서Dev

android : drawable을 왼쪽과 상단에 설정하는 방법은 무엇입니까?

분류에서Dev

이전을 사용하여 버튼의 왼쪽과 오른쪽 테두리를 설정하는 방법은 무엇입니까?

분류에서Dev

SVG와 같이 요소를 왼쪽과 오른쪽으로 배치하는 방법은 무엇입니까?

분류에서Dev

왼쪽과 오른쪽에 7 %의 빈 공간이있는 Foundation에서 레이아웃을 디자인하는 방법은 무엇입니까?

분류에서Dev

컨테이너 내부에서 왼쪽 상단에서 오른쪽 하단으로 요소를 애니메이션하는 방법은 무엇입니까?

분류에서Dev

왼쪽과 오른쪽에서 첫 번째 정수를 가져와 2 개의 다른 셀에 합산하는 방법은 무엇입니까?

분류에서Dev

왼쪽과 오른쪽으로 떠 다니는 두 요소의 맨 아래에 요소를 배치하는 방법은 무엇입니까?

분류에서Dev

요소를 위쪽, 아래쪽, 오른쪽, 왼쪽 방향으로 드래그하는 방법은 무엇입니까?

분류에서Dev

Fabric JS : 삼각형의 상단과 왼쪽 위치를 동시에 애니메이션하는 방법은 무엇입니까? + 애니메이션 버그

분류에서Dev

헤더의 오른쪽 상단에 사이트 제목과 태그 라인을 배치하는 방법은 무엇입니까?

분류에서Dev

Excel에서 행의 가장 오른쪽 값을 얻는 방법은 무엇입니까?

분류에서Dev

내 차트의 왼쪽 하단에 표시되는 사각형을 숨기는 방법은 무엇입니까?

분류에서Dev

pinterest.com의 왼쪽 상단에 3 줄 버튼을 만드는 방법은 무엇입니까?

분류에서Dev

React Native에서 MapView의 오른쪽 하단에 버튼을 배치하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    스택의 자식을 오른쪽 하단 또는 왼쪽 하단에 배치하는 방법은 무엇입니까? (반응 형)

  2. 2

    키보드 단축키를 사용하여 창을 왼쪽 / 오른쪽의 다른 모니터로 이동하는 방법은 무엇입니까?

  3. 3

    키보드 단축키를 사용하여 창을 왼쪽 / 오른쪽의 다른 모니터로 이동하는 방법은 무엇입니까?

  4. 4

    MS Word 표 : 왼쪽 상단에 새 셀을 삽입 한 후 자동으로 셀을 오른쪽과 아래로 이동하는 방법은 무엇입니까?

  5. 5

    상단과 하단의 두 부분으로 왼쪽 영역을 만들기 위해 원근을 배치하는 방법은 무엇입니까?

  6. 6

    마우스 포인터의 오른쪽 / 왼쪽에 전단지 팝업을 표시하는 방법은 무엇입니까?

  7. 7

    자바 스크립트를 사용하여 픽셀에서 왼쪽 / 오른쪽 / 위쪽 / 아래쪽 속성 값을 얻는 방법은 무엇입니까?

  8. 8

    offsetParent div의 상단 및 왼쪽 속성을 얻는 방법은 무엇입니까?

  9. 9

    결과 / 오른쪽 내부에서 조건 / 왼쪽에 정의 된 모든 잠꼬대 변수 목록을 얻는 방법은 무엇입니까?

  10. 10

    iOS XCTest 단위 테스트에서 오른쪽에서 왼쪽으로 쓰는 언어를 테스트하는 방법은 무엇입니까?

  11. 11

    내 div 상자의 오른쪽 하단으로 버튼을 이동하는 방법은 무엇입니까?

  12. 12

    TableLayoutPanel에서 셀의 왼쪽 위치를 양식의 픽셀 단위로 얻는 방법은 무엇입니까?

  13. 13

    왼쪽 alt를 오른쪽 alt처럼 만드는 단축키를 만드는 방법은 무엇입니까?

  14. 14

    nativescript의 오른쪽 상단에 닫기 버튼을 사용하는 방법은 무엇입니까?

  15. 15

    CSS : 왼쪽과 오른쪽에있는 표의 윤곽선 테두리 서식을 지정하고 제거하는 방법은 무엇입니까?

  16. 16

    android : drawable을 왼쪽과 상단에 설정하는 방법은 무엇입니까?

  17. 17

    이전을 사용하여 버튼의 왼쪽과 오른쪽 테두리를 설정하는 방법은 무엇입니까?

  18. 18

    SVG와 같이 요소를 왼쪽과 오른쪽으로 배치하는 방법은 무엇입니까?

  19. 19

    왼쪽과 오른쪽에 7 %의 빈 공간이있는 Foundation에서 레이아웃을 디자인하는 방법은 무엇입니까?

  20. 20

    컨테이너 내부에서 왼쪽 상단에서 오른쪽 하단으로 요소를 애니메이션하는 방법은 무엇입니까?

  21. 21

    왼쪽과 오른쪽에서 첫 번째 정수를 가져와 2 개의 다른 셀에 합산하는 방법은 무엇입니까?

  22. 22

    왼쪽과 오른쪽으로 떠 다니는 두 요소의 맨 아래에 요소를 배치하는 방법은 무엇입니까?

  23. 23

    요소를 위쪽, 아래쪽, 오른쪽, 왼쪽 방향으로 드래그하는 방법은 무엇입니까?

  24. 24

    Fabric JS : 삼각형의 상단과 왼쪽 위치를 동시에 애니메이션하는 방법은 무엇입니까? + 애니메이션 버그

  25. 25

    헤더의 오른쪽 상단에 사이트 제목과 태그 라인을 배치하는 방법은 무엇입니까?

  26. 26

    Excel에서 행의 가장 오른쪽 값을 얻는 방법은 무엇입니까?

  27. 27

    내 차트의 왼쪽 하단에 표시되는 사각형을 숨기는 방법은 무엇입니까?

  28. 28

    pinterest.com의 왼쪽 상단에 3 줄 버튼을 만드는 방법은 무엇입니까?

  29. 29

    React Native에서 MapView의 오른쪽 하단에 버튼을 배치하는 방법은 무엇입니까?

뜨겁다태그

보관