기존 질문을 검색하여 유사한 질문과 답변을 찾았지만 내 요구 사항을 충족하는 것은 없습니다.
한 스프레드시트의 링크를 클릭하여 두 번째 스프레드시트로 이동하고 클릭한 셀의 값을 두 번째 필드에 배치할 수 있는 스프레드시트가 있습니다.
IT
예를 들어, A열의 첫 번째 시트에는 , Finance
및 단위가 포함됩니다.Networks
이러한 필드 중 하나를 클릭하면 사용자는 A1에 셀 값을 배치하는 "Sub Unit"이라는 두 번째 시트로 이동하게 됩니다. 여기서 하위 단위 목록을 채우는 if 문을 작성할 수 있습니다. 예를 들어 클릭하면 A1 셀에 IT
입력됩니다 . IT
그런 다음 A3-A5의 if 문을 통해 다음과 같이 만듭니다.
Security, Support, Development
그런 다음 유사한 VB 코드를 재사용하여 누군가가 하위 단위 이름을 클릭하면 하위 단위에 대한 세부 정보를 표시하는 세 번째 시트로 이동합니다.
그게 말이 되기를 바라요.
저는 VBA를 처음 접했으므로 코드를 어디에 배치해야 하는지 알려주세요(예: 탭, 마우스 오른쪽 버튼 클릭, 코드 보기 또는 다른 위치).
답변1
시트 1에서 키를 눌러 ALT+F11
VB 편집기를 가져옵니다. 이 코드를 표준 모듈로 복사하여 붙여넣으세요.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "Range " & Target.Address & " was double clicked"
On Error Resume Next
Dim xRg As Range
Set xRg = Application.Selection
Range("A80").Copy Sheet2.Range("A80")
Application.Goto Worksheets("Sheet2").Range("A80"), True
End Sub
작동 방식:
- 셀에 일부 데이터를 쓰고
A80
셀을 두 번 클릭합니다. - 어떤 셀을 클릭했는지 확인하는 메시지 상자가 나타납니다.
- 버튼을 누르시오
OK
. - Excel은 시트 2의 셀에 셀 포인터를 배치하고
Copy & Paste
내용을 지정 합니다 .A80
A80
주의
- 필요에 따라 코드에서 셀 참조 및 시트 이름을 조정합니다.
- 셀 범위를 참조할 수 있습니다
Copy & Paste
. - 그렇게 하려면 이 줄을 편집하세요.
Range("A80:A85").Copy Sheet2.Range("A80")