2012-08-24 3 views
3

, 당신은 데이터 객체 개체원본 범위의 Excel 클립 보드 데이터를 가져올 수 있습니까? 클립 보드는 Excel 워크 시트 범위가 포함 된 경우

과 그 범위의 데이터에 액세스 할 수 있습니다 당신은 또한 찾을 수 실제 소스 범위 (예 : 워크 시트, & 열 행) 데이터의를?

또는, 점선 테두리 (하지 선택한 범위)로 표시됩니다 마지막으로 복사 된 범위를 어디에서 찾을 수 있습니까?

Sub testClipborard() 

    Dim test As String 
    Dim clipboard As MSForms.DataObject 
    Set clipboard = New MSForms.DataObject 

    clipboard.GetFromClipboard 
    test = clipboard.GetText 

    MsgBox (test) 

End Sub 

참고 것 : (엑셀 분명 어떻게 든 국경을 기억하지만) 클립 보드 객체는 셀의 값을 포함하는 것 - 바람직 VBA

답변

1

하지 직접, 아니 엑셀 2003을 사용

이를 실행하려면 Microsoft Forms 2.0 Library에 대한 참조가 필요합니다 (셀에 값이 없어도 실패합니다).


즉, 다음과 같이 시도해 볼 수 있습니다. VBA 편집기의 모듈에 추가하십시오. 이 클립 보드에 문제를 해결하기 위해 시도로

Public NewRange As String 
Public OldRange As String 
Public SaveRange As String 
Public ChangeRange As Boolean 

그리고 그것은 겉으로 작동하는 시트 객체

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 

    'save previous selection 
    OldRange = NewRange 

    'get current selection 
    NewRange = Selection.Address 

    'check if copy mode has been turned off 
    If Application.CutCopyMode = False Then 
     ChangeRange = False 
    End If 

    'if copy mode has been turned on, save Old Range 
    If Application.CutCopyMode = 1 And ChangeRange = False Then 
     'boolean to hold "SaveRange" address til next copy/paste operation 
     ChangeRange = True 
     'Save last clipboard contents range address 
     SaveRange = OldRange 
    End If 

End Sub 

에 다음을 사용하지만, 그것은 또한 다른 버그 아마 상당히 경향이있다. http://www.ozgrid.com/forum/showthread.php?t=66773

관련 문제