2017-04-24 1 views
0

저는 VBA에 완전히 익숙하지 않으므로 내가하고있는 일을 전혀 모르는 ... 아래에는 내 문제와 해당 코드에 대한 설명이 나와 있습니다.코드 복사 후 붙여 넣기 목록에 매크로가 나타나지 않습니다.

: 내가 분명히이있는 트릭을 수행하는 코드를 발견 이제

값으로 붙여 넣기, 셀을 선택하고, 새 시트를 선택 복사 클릭 된 셀 : 내가 원래하고 싶었던 무엇

이 있었다

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not Intersect(Target, Columns("A")) Is Nothing Then 
    Cancel = True 
    If Target.Row > 1 And Len(Target.Value) Then Worksheets("S11").Range("C2").Value = Target.Value 
    End If 
End Sub 

"분명히"내가 테스트 할 수 없으므로 말합니다. 여기에 문제가 : - 내 통합 문서로 돌아가려면

  • 그때 ALT F8 그것을 실행 - 나는 엑셀 매크로 사용 통합 문서로
  • 클릭했습니다 ALT의 Q를 통합 문서를 저장
    1. 하지만 아무것도 없다 ... blank ....

    무엇이 빠졌습니까?

  • +3

    Alt 키 F8 실행할 수있는 것입니다 만 표시 매크로처럼 사용할 수 있습니다. 'worksheet_change' 이벤트는'Private'이므로 공개적으로 액세스 할 수 없으며 다른 곳에서 호출하지 않으면 수행 할 수없는 매개 변수가 필요합니다. 배치 한 시트의 코드 창을보고 다시 존재하는지 확인할 수 있습니다. 그러나 A1 셀을 제외하고 A 열에 공백이 아닌 값을 넣을 때마다 실행되어야합니다. – YowE3K

    +0

    위의 매크로는 워크 시트 개체에 배치되도록 디자인되었으며 해당 시트에서 선택한 셀이 변경되면 실행됩니다. 또한 새로 활성화 된 셀이 A 열에 있으면 아무 일도하지 않는 것처럼 보입니다.'Cancel'을'True'로 설정하면'Event'에서 아무 것도하지 않을 것입니다. 그것이 A 열에 있으면'Row' 1에 있지 않은지 확인하고 비어 있지 않습니다. 만약 그렇다면, 새로 활성화 된 셀에 저장된 값을 복사해서'S11! C2'. 그게 니가 원하는거야? – CLR

    +0

    정말 고마워요. –

    답변

    0

    모듈에는 사용할 매크로가 있습니다.

    public sub mymacro(r as excel.range) 
    If Not Intersect(r, Columns("A")) Is Nothing Then   
        If r.Row > 1 And Len(r.Value) Then Worksheets("S11").Range("C2").Value= r.Value 
        End If 
    end sub 
    
    public sub wbtest() 
        mymacro activecell 
    end sub 
    

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
        If Not Intersect(Target, Columns("A")) Is Nothing then 
         mymacro target 
        end if 
    end sub 
    
    관련 문제