Note: The other languages of the website are Google-translated. Back to English

Excel에서 특정 셀을 클릭하여 매크로를 트리거하거나 실행하는 방법은 무엇입니까?

Microsoft Excel로 작업하는 동안 명령 단추로 특정 매크로를 실행하는 방법을 알 수 있습니다. 하지만 워크 시트의 특정 셀을 클릭하여 매크로를 실행하는 방법을 알고 있습니까? 이 기사에서는 특정 셀을 클릭하여 매크로를 트리거하는 방법을 자세히 보여줍니다.

VBA 코드로 특정 셀을 클릭하여 매크로 트리거 또는 실행


VBA 코드로 특정 셀을 클릭하여 매크로 트리거 또는 실행

다음 VBA 코드는 Excel에서 특정 셀을 클릭하여 매크로를 실행하는 데 도움이 될 수 있습니다. 다음과 같이하십시오.

1. 매크로를 실행하기 위해 클릭해야하는 셀이있는 워크 시트에서 시트 탭을 마우스 오른쪽 단추로 클릭 한 다음 코드보기 컨텍스트 메뉴에서.

2. 에서 응용 프로그램 용 Microsoft Visual Basic 창에서 아래 VBA 스크립트를 복사하여 코드 창에 붙여 넣습니다.

VBA 코드 : 특정 셀을 클릭하여 매크로 트리거 또는 실행

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D4")) Is Nothing Then
            Call MyMacro
        End If
    End If
End Sub

노트:

1. 코드에서 D4는 매크로를 실행하기 위해 클릭 할 셀입니다.

2. 코드 이름을 바꾸십시오 마이 매크로 매크로를 사용하면 워크 시트에서 실행할 수 있습니다. 스크린 샷보기 :

3. 누르세요 다른 + Q 키를 동시에 닫아 응용 프로그램 용 Microsoft Visual Basic 창.

이제부터 현재 워크 시트에서 D4 셀을 클릭하면 지정된 매크로가 즉시 트리거됩니다.


관련 기사:


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (37)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
VBA 코드가 있는 특정 셀을 클릭하여 매크로를 트리거하거나 실행하면 작동하지 않습니다. 여러 방법을 시도해 보았지만 약속한 바를 이루지 못했습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드는 "ThisWorkbook" 모듈에 배치한 경우에만 작동합니다. 일반 모듈에서는 작동하지 않습니다.
통합 문서 이름 > Microsft Excel 개체 > ThisWorkbook.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드는 워크시트 코드 모듈에서 작동합니다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 '코드 보기'를 클릭해야 합니다. 그러면 해당 워크시트에 대해서만 코드 모듈이 열립니다. 그런 다음 언급된 코드를 붙여넣습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
여러 매크로, 같은 페이지에서 다른 매크로를 실행하는 셀을 갖고 싶다면 가능합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 사이먼,
아래 VBA 스크립트를 사용하면 같은 페이지에서 셀을 클릭하여 다른 매크로를 실행할 수 있습니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Count = 1이면
If Not Intersect(Target, Range("D4")) is nothing 다음 MyMacro1 호출
If Not Intersect(Target, Range("D8")) is nothing 다음 MyMacro2 호출
If Not Intersect(Target, Range("D10")) is nothing 다음 MyMacro3 호출
END IF
최종 하위

셀을 클릭하여 더 많은 매크로를 실행하려면 "If Not Intersect(Target, Range("D10")) Is Nothing Then Call MyMacro" 행을 추가하십시오. 필요에 따라 코드에서 셀 및 매크로 이름을 변경합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 Excel에서 작동하지 않습니다. 코드가 맞습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 카밀라
불편을 드려 죄송합니다. 아래 VBA 코드를 시도하십시오.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgArr을 변형으로
변형으로 Dim xFunArr
Dim xFNum을 정수로
Dim xStr을 문자열로
범위로 Dim xRg
xRgArr = Array("A1", "D1", "C1") '매크로를 트리거하는 데 사용되는 셀
xFunArr = Array("코드명1", "코드명2", "코드명3") '해당 코드명
Selection.Count = 1이면
xFNum = 0 UBound(xRgArr)까지
xRg = ActiveSheet.Range(xRgArr(xFNum)) 설정
If Not Intersect(Target, xRg) is nothing then
xStr = xFunArr(xFNum)
Application.Run xStr
END IF
다음
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것은 완벽하게 작동했으며 많은 시간을 절약할 수 있습니다. 지식을 공유해 주셔서 감사합니다. 대단히 감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
도움이 될 수 있어서 기쁩니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
엄청난. 잘쓰고있습니다...감사합니다....
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕.

나는 이것이 잘 작동하지만 매크로 실행에 조건을 추가하고 싶습니다. 클릭한 셀 옆에 있는 셀에 특정 값이 포함된 경우에만 매크로를 실행하고 싶습니다.
예를 들어 F6 셀을 클릭할 때 E6 셀에 "x"가 포함되어 있으면 매크로가 실행되기를 원하지만 E6 셀이 비어 있으면 매크로가 실행되지 않아야 합니다.
희망은 그 말이 맞습니다.
감사

다음은 조건이 없는 원래 코드입니다.


Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Count = 1이면
If Not Intersect(Target, Range("F6:F18")) Is nothing then
통화날짜선택
END IF
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
다음 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. 한번 해보시고 댓글 감사합니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
범위로 Dim xRg
If Not Intersect(Target, Range("F6:F18")) Is nothing then
xRg = ActiveSheet.Cells(Target.Row, Target.Column - 1)로 설정
If (xRg.Value = "") 또는 (xRg.Value <> "X") 다음 Sub 종료
전화 걸기
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
고맙지만 병합된 셀은 어떻습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 알베르
코드는 병합된 셀에 대해 작동하지 않습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
저는 OpenOffice를 사용하고 있으며 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 이벤트를 선택한 다음 MyMacros에서 이 매크로를 선택했습니다. 그러나 다음 줄에서 오류가 발생합니다. If Selection.Count = 1 Then >>> "기본 런타임 오류, 변수가 정의되지 않았습니다...
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 제임스
이 코드는 Microsoft Office Excel에서만 작동합니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 매크로의 전체 코드는 다음과 같습니다.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

문자열로 Dim val
REM 값 = 범위("A2").값

Selection.Count = 1이면
If Not Intersect(Target, Range("D24")) is nothing then
REM 콜 마이매크로
값 = 범위("D24").값
범위("B27").값 = 값
END IF
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 주제는 매우 흥미롭고 관심이 있지만 어디서 찾아야 할지 모르겠습니다. 고맙게도 이 주제를 만드셨습니다. 모두가 저를 도와주길 바랍니다. http://run-3.online
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Excel 2002(XP): "파일"을 선택하고 "Shift"를 눌러 통합 문서를 열면 해당 시트의 매크로가 비활성화됩니다. 문제는 "도구 > 매크로 > 매크로..."를 선택하면 매크로를 실행할 수 있다는 것입니다. 어쨌든 해결 방법은?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 로저
Excel 2002(XP)에서는 코드를 테스트하지 않았습니다. 최신 버전의 Microsoft Office를 사용하지 않는 이유는 무엇입니까? 작업이 더 쉬울 것입니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
2010년에도 같은 결과다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
새로운 버전을 사용하는 것이 더 쉬울 것입니다.
https://games.lol/racing/
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
감사합니다. 하지만 여러 매크로를 실행하기 위해 클릭하기 위한 여러 셀은 어떻습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
아래 VBA 코드를 시도하십시오.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgArr을 변형으로
변형으로 Dim xFunArr
Dim xFNum을 정수로
Dim xStr을 문자열로
범위로 Dim xRg
xRgArr = Array("A1", "D1", "C1") '매크로를 트리거하는 데 사용되는 셀
xFunArr = Array("코드명1", "코드명2", "코드명3") '해당 코드명
Selection.Count = 1이면
xFNum = 0 UBound(xRgArr)까지
xRg = ActiveSheet.Range(xRgArr(xFNum)) 설정
If Not Intersect(Target, xRg) is nothing then
xStr = xFunArr(xFNum)
Application.Run xStr
END IF
다음
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드에 감사드립니다. 다른 셀과 병합된 셀을 클릭하여 작동하도록 할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 M.Symonds입니다.
이 기사의 코드는 다음과 같이 도움이 될 수 있습니다. https://www.extendoffice.com/documents/excel/4354-excel-click-on-cell-to-run-macro.html
당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 이 코드를 사용하여 붙여넣기 매크로를 실행하려고 했지만 매크로를 올바르게 붙여넣는 방법을 알 수 없는 것 같습니다.

여기 내 원래 Marco가 있습니다

하위 붙여넣기()
'
' 매크로 붙여넣기
'

'
범위 ( "B34"). 선택
ActiveSheet.PasteSpecial 형식:="HTML", 링크:=거짓, DisplayAsIcon:= _
거짓, NoHTMLFormatting:=True
최종 하위


어떤 도움에 감사드립니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 흥미로운 주제에 감사드립니다. 예를 들어 Sheet4에서 D1를 클릭하고 Sheet2!F3에서 Macro의 결과를 보려면 어떻게 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
더 이상 작동하지 않습니다.
Worksheet_SelectionChange는 기본적으로 존재하지 않습니다. 매크로를 실행하는 데 사용할 수 없음을 의미합니다.

사용할 수 있는 포함된 유일한 하위 항목은 "통합 문서" 드롭다운 목록에서 참조되므로...

가장 가까운 유일한 방법은 Workbook_SheetBeforeDoubleClick을 사용하는 것입니다. 그러나 편집 모드로 들어갈 것입니다(아직 큰 문제는 아닙니다).
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 CodeKiller.Worksheet_SelectionChange는 시트(코드) 편집기에만 존재합니다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 코드 보기를 클릭하여 시트(코드) 편집기를 활성화합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
매크로는 워크시트에서만 실행된다는 점을 강조하는 것이 중요합니다.
일반 Visual Basic 편집기를 사용하는 사람들은 종종 현재 워크시트가 아닌 다른 위치에 매크로를 저장하게 됩니다.
이러한 코드는 그 상황에서 작동하지 않습니다.
이 코드가 훨씬 더 간단하고 저에게 매우 잘 작동합니다. 

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(Range("d1"), Target) is nothing then
전화해
END IF
최종 하위
Sub aa() ' 여기에 코드를 넣으십시오.
범위("D1").선택
선택. 복사
범위("F1").선택
ActiveSheet.PasteEnd Sub
존 웰스
jnw.wells@gmail.com
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 John Wells, 공유해 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
병합된 셀에 대해 이것이 작동하도록 하려는 경우 가장 빠르고 더러운 방법은 다음과 같이 Line 2를 업데이트하는 것입니다.
옵션 명시적

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Count > 0이면
If Not Intersect(Target, Range("D4")) is nothing then
마이매크로 호출
END IF
END IF
End SubSelection.Count는 나머지 매크로를 실행하기 전에 선택되었는지 확인하는 데 사용됩니다. 선택 항목이 병합된 4개의 셀로 구성된 경우 Selection.Count는 2가 되고 나머지 코드는 실행되지 않습니다. XNUMX행을 병합된 정확한 셀 수로 변경할 수도 있지만 다음과 같은 경우 문제가 발생합니다. 추가 셀을 병합합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
그란디오소! Grazie, era una vita che sognavo di poterlo fee, se può essere utile a qualcuno avendo necessità di eseguire più codici su più celle per
aumentare il numero di opzioni basta aggiungere le nuove istruzionisempre sotto la stessa option 명시적 altrimente ci viene detto che il riferimento al
워크시트 non è univoco. Mi spiego meglio evidencemente su come ho adattato il codice con il mio empio;

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Count = 1이면
If Not Intersect(Target, Range("Y64")) is nothing then
범위("Y65:Y78").선택
범위("Y65").활성화
Selection.ClearContents
범위("Y65").선택
END IF
If Not Intersect(Target, Range("A33")) is nothing then
범위 ( "A33"). 선택
선택. 복사
ActiveWindow.WindowState = xlMinimized
SendKeys "^v"
SendKeys "{BACKSPACE}"
END IF
END IF
최종 하위

Grazie ancora è stata un'autentica meraviglia!

마시모
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
그 타이틀에 대해 별 기대를 하지 않았는데 더 놀랐다. 저자는 훌륭한 일을 했습니다. 나는 사실을 읽고 확인하는 데 몇 분을 보냈다. 모든 것이 매우 명확하고 이해할 수 있습니다. 나는 당신의 지식 격차를 채우는 게시물을 좋아합니다. 이 종류입니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요

아니 encuentro la manera de hacer lo que necesito. Espero de veras que me podáis ayudar.
Necesito que se lance una MACRO al Hacer clic en una celda, pero no sé en qué celda va a ser, no lo puedo comparar con (si se ha seleccionado la celda A3, por ejemplo, que se lance la acción) porque del funcional porque del fichero, las celdas se van a mover de sitio (se han podido insertar, mas o menos filas encima). Necesitaría poder saber que celda es la que se ha seleccionado.
Hay alguna manera de poder hacer eso?
사전에 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요,
셀 주소는 일정합니다. 이동할 수 있는 것은 셀의 값뿐입니다.
VBA 코드에서 지정한 셀은 여전히 ​​지정된 VBA 코드를 트리거하는 셀입니다.
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호