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

 Excel에서 셀 값을 기반으로 매크로를 실행하는 방법은 무엇입니까?

통합 문서에 여러 매크로 코드가 있고 이제 셀 값을 기반으로이 코드를 실행하려고합니다. 이 기사에서는 Excel을 사용할 때 일상 작업에서 겪을 수있는 몇 가지 상황에 대해 설명합니다.

VBA 코드로 셀 값이 특정 값보다 크거나 작은 경우 매크로를 실행하거나 트리거합니다.

셀 값이 VBA 코드가있는 특정 텍스트와 같은 경우 매크로 실행 또는 트리거


화살표 블루 오른쪽 거품 VBA 코드로 셀 값이 특정 값보다 크거나 작은 경우 매크로를 실행하거나 트리거합니다.

예를 들어 A1 셀의 값이 10에서 50 사이이면 macro1을 실행하고 값이 50보다 크면 macro2를 실행합니다. Excel에서이 작업을 해결하려면 다음 VBA 코드를 적용하십시오.

1. 셀 값을 기반으로 매크로를 실행할 시트 탭을 마우스 오른쪽 단추로 클릭 한 다음 코드보기 상황에 맞는 메뉴 및 열린 애플리케이션 용 Microsoft Visual Basic 창에서 다음 코드를 복사하여 빈 모듈에 붙여 넣습니다.

VBA 코드 : 셀 값이 다음보다 크거나 작은 경우 매크로 실행 :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

셀 값 1을 기반으로하는 문서 실행 매크로

주의 사항: 위 코드에서 :

A1 매크로를 실행할 특정 값이 포함 된 셀입니다.

사례 10 ~ 50 : Macro1: 값이 10에서 50 사이이면 Macro1을 실행합니다.

사례가> 50 : Macro2: 값이 50보다 크면 Macro2를 실행합니다.

이러한 매크로 이름과 기준을 필요에 따라 변경하고 다음의 기준을 더 추가 할 수도 있습니다. 케이스 스크립트.

2. 그런 다음이 코드 창을 저장하고 닫으십시오. 이제 입력 한 값이 A10 셀에 50에서 1 사이이면 Macro1이 트리거되고 입력 된 값이 50보다 크면 Macro2가 실행됩니다.


화살표 블루 오른쪽 거품 셀 값이 VBA 코드가있는 특정 텍스트와 같은 경우 매크로 실행 또는 트리거

예를 들어 셀의 특정 텍스트를 기반으로 매크로를 트리거하려면 "삭제"텍스트를 입력하면 macro1을 실행하고 "Insert"텍스트를 입력하면 macro2를 실행합니다. 다음 코드가 도움이 될 수 있습니다.

1. 셀 값을 기반으로 매크로를 실행할 시트를 마우스 오른쪽 단추로 클릭 한 다음 코드보기 상황에 맞는 메뉴 및 열린 애플리케이션 용 Microsoft Visual Basic 창에서 다음 코드를 복사하여 빈 모듈에 붙여 넣습니다.

VBA 코드: 셀 값이 특정 텍스트인 경우 매크로 실행

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

셀 값 2을 기반으로하는 문서 실행 매크로

주의 사항: 위 코드에서“."및"끼워 넣다”는 매크로를 실행하려는 셀 텍스트입니다. Macro1 Macro2 텍스트를 기반으로 실행하려는 매크로입니다. 필요에 따라 변경하십시오.

2. 그런 다음이 코드를 저장하고 창을 닫으십시오. 이제 A1 셀에 "Delete"텍스트를 입력하면 macro1이 트리거되고 "Insert"텍스트를 입력하면 macro2가 실행됩니다.


관련 기사 :

Excel에서 셀 값이 변경 될 때 매크로를 실행하는 방법은 무엇입니까?

Excel에서 인쇄하기 전에 매크로를 자동으로 실행하는 방법은 무엇입니까?

Excel의 드롭 다운 목록에서 선택한 값을 기반으로 매크로를 실행하는 방법은 무엇입니까?

Excel에서 하이퍼 링크를 클릭하여 매크로를 실행하는 방법은 무엇입니까?

통합 문서에서 시트를 선택할 때 매크로를 실행하는 방법은 무엇입니까?


최고의 사무 생산성 도구

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 하단
코멘트 (19)
5에서 평가 된 5 · 1 등급
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 두 개의 셀을 기반으로 매크로를 실행하고 싶다면 어떻습니까? 한 셀은 텍스트 기반이고 다른 셀에는 숫자 값이 있습니까? 그런 다음 첫 번째 셀에 대해 "예", 두 번째 셀에 대해 1과 같이 두 셀에 원하는 것이 정확히 표시되면 매크로를 호출하고 싶을 것입니다. 그렇지 않은 경우 팝 상자에 "찾을 수 없음"이라는 메시지가 표시됩니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
요구 사항 :
선택을 바탕으로
아래와 같이 동일한 차원의 세 가지 속성에 대한 드롭다운 목록이 있습니다.
그리고 세포(G46, G47 및 G48)에서 파생될 XNUMX개의 파생 세포가 있습니다.

시나리오 :
비용 센터 드롭다운 목록에서 값을 선택하면 비용 센터 파생 셀(K46)이 비용 센터 드롭다운 목록(H46)에서 선택한 값으로 채워지고 다른 두 파생 셀(K47 및 k48)이 비어 있어야 합니다.

마찬가지로 예산 관리자 드롭다운 목록에서 값을 선택하면 예산 관리자 파생 셀은 예산 관리자 드롭다운 목록(H47)에서 선택한 값으로 채워지고 다른 두 파생 셀(K45 및 k48)은 비어 있어야 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
결과 분석을 하고 있습니다. 이 경우 엑셀의 데이터는 Name, Sub name, Crade와 같을 것입니다. 이제 결과에서 모든 합격 또는 합격 후보자 번호를 찾고 싶습니다. 어떻게 얻을 수 있습니까? 왜냐하면 저는 6개의 다른 주제와 그 결과가 하나의 Excel 시트에 있기 때문입니다. 학생이 한 과목에서 낙제했다면 그는 성공적인 학생이 아닙니다. 모든 주제에서 이름을 제거하는 방법.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
동일한 워크시트에 대한 코드를 모두 수정하십시오.
완벽하게 작동하는 첫 번째 코드
개인 하위 Worksheet_Change (범위로 ByVal 대상)
If Not Intersect(Target, Range("D1")) is nothing then
케이스 범위 선택("D1")
사례 "0.5": 절반
사례 "1": 하나
사례 "1.25": OneTwentyFive
선택 종료
END IF
최종 하위

두 번째 코드가 작동하지 않음(아래를 수정하십시오)
비공개 하위 변경(ByVal Target As Range)
If Not Intersect(Target, Range("D2")) is nothing then
케이스 범위 선택("D2")
사례 "9.53": 나인포인트파이브쓰리
선택 종료
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Olá, quero fazer o seguinte:
Na Celula A1, assim que ela estiver preenchida pass para a celula de baixo, no caso A2.
Eu uso um leitor de codigo de barras para cadastrar produtos, e ele lê os numeros automaticos, ai tenho que ficar apertando ENTER para ir para celula de baixo.

감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Hola, una Consulta, como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 구스타보
문제를 해결하려면 다음 코드를 적용하세요.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        If Target.Value > 10 And Target.Value < 50 Then
         macro1
         macro2
        End If
    End If
End Sub

시도해보십시오. 도움이 되길 바랍니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
je souhaiterais appliquer cette macro à mon code. Le problème est que la cellule s'incrémente via une toupie et le code ne reconnais pas le changement de valeur de la cellule.
Quand je saisie la valeur manuellement celà fonctionne correctment.

메르 디 AVANCE
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 길레스
를 삽입해야 합니다. 스핀 버튼(ActiveX 컨트롤) 먼저 클릭한 다음 오른쪽 클릭하고 선택합니다. 코드보기, 그런 다음 기존 스크립트 사이에 아래 코드를 복사하여 붙여넣고,
Dim xWSh As Worksheet
Dim xOL As OLEObject
Dim xRg As Range
Set xWSh = Application.ActiveSheet
Set xOL = xWSh.OLEObjects("SpinButton1") 'The name of the spin button
Set xRg = xWSh.Range(xOL.LinkedCell)
If IsNumeric(xRg) And xRg.Address = "$A$1" Then
        Select Case xRg.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
End If

https://www.extendoffice.com/images/stories/comments/comment-skyyang/DOC-RUN-CODE.png

시도해보십시오. 도움이 되길 바랍니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요!

저는 VBA를 처음 접했고 제가 가지고 있는 엑셀 시트에 대해 이 솔루션을 시도했습니다. 기본적으로 Excel에 긴 목록이 있습니다. T 열에 예 또는 아니요를 입력해야 합니다. 예를 입력하면 매크로를 실행하고 싶습니다. 범위를 정의하는 다양한 방법을 시도했지만 아무것도 작동하지 않습니다.

하위 워크시트_변경(ByVal 대상을 범위로)

목표 설정 = 범위("T:T")
target.Value = "예"인 경우 다음
매크로1 호출
END IF

최종 하위

나는 이 문제(런타임 오류 유형 불일치)를 강조합니다. If target.Value = "Yes" then

아무도 도와 드릴까요?

안부 인사, 이사벨라
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 웨스터가드
다음 VBA 코드가 도움이 될 수 있습니다. (참고: 이름을 변경하십시오. Macro1 자신의 코드 이름으로)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("T:T")) Is Nothing Then
If Target.Value = "Yes" Then
      Call Macro1
    End If
    End If
End Sub

시도해보십시오. 도움이 되길 바랍니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
매우 감사합니다! 이제 작동합니다 :)
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
셀 A1 수식 계산 결과에서 이 코드 기반을 수정하는 방법
하위 Worksheet_Calculate()
도와주세요

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Target.Cells.Count > 1이면 Sub 종료
If IsNumeric(Target) And Target.Address = "$A$1" 그런 다음
사례 대상을 선택합니다.값
사례 10 ~ 50 : Macro1
사례가> 50 : Macro2
선택 종료
END IF
최종 하위
5에서 평가 된 5
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 FG입니다.
코드가 수식 셀에서 작동하도록 하려면 아래 코드를 적용하십시오.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    ElseIf (Not Intersect(Range("$A$1"), Target.Dependents) Is Nothing) Then
        Set Rg = Intersect(Range("$A$1"), Target.Dependents)(1)
        Select Case Rg.Value
        Case 10 To 50: macro1
        Case Is > 50: macro2
        End Select
    End If
End Sub

시도해보십시오. 도움이 되길 바랍니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
차오스카이양. Spero tu possa aiutarmi. Ho un programmino in vba che basandosi su variazioni di prezzo di una cella (E1), collegata in DDE con una piattaforma di trading di borsa, fissa i prezzi: Massimo, Minimo, Apertura, Chiusura, per poi passare alla riga successiva in base a un intervallo temporale impostato all'apertura del foglio elettronico. L'algoritmo da me sviluppato fa si che nelle colonne: "BH" e "BI" vengano visualizzati i prezzi di acquisto e di vendita, ma solo quando soddisfatte le condizioni date, altrimenti le celle non restituiscono nessun valore. Quello di cui avrei bisogno è di un avviso sonoro .wav che mi avvisi quando viene restituito un valore, di acquisto o di vendita, in modo di non dover fissare lo schermo per 14 ore al giorno. Ho provato a inserire un codice "SoundMe()" trovato online, ma suona ogni volta che c'è un nuovo minimo nella riga in cui il programma sta aggiornando i prezzi. Pensi che il problema si possa risolvere? Grazie per l'attenzione
스테파노
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요,
ho provato il listato che permette di richiamare 2 macro al cambio del valore di una cella, se quel cambio deriva da una funzione "se" non funziona, se digito i valori (vero o falso) funziona.

포소 오비아레 오세요?
Eventualmente come potrei evitare di utilizzare il condizionale sulla cella e far verificare al listato se la cella che deve far avviare le macro è compilata o meno?

그라 찌에
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요,
vorrei eseguire una macro quando una in una cella viene inserito un controllo "if" o se viene inserita una data e non un numero.

Ad esempio se nella cella A1 inserisco: If(B2=0;vero;falso) e la macro leggendo vero mi nasconde lo sheet2 altrimenti mi scopre la sheet 2.

포소 요금으로 오세요?
Riesco a far funzionare il tutto se inserisco in A1 manualmente un valore (in questo caso vero o falso).

감사
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 카를로
사실 이 기사의 두 번째 코드로 문제를 해결할 수 있습니다.
주의 사항: 코드에 텍스트를 True, False로 변경하고 코드명을 자신의 것으로 변경하기만 하면 됩니다.
Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "True" Then
 Call Macro1
End If
If target.Value = "False" Then
Call Macro2
End If
End Sub 


다시 시도해 주세요. 감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요

ich bräuchte dafür ein Makro,

ich kann dieses Problem nicht alleine lösen, wäre super wenn mir jemand helfen könnte.

In M1 steht die Zahl 5, jetzt soll der Bereich von A83 bis A683 auf die Zahl 5 geprüft werden, sollte z.B. A111 die Zahl 5 enthalten, dann soll C111 + 1 ( wenn in C111 23 steht dann soll da 24 stehen). Genau so wenn in A444 eine 5 steht, dann soll C444 + 1 ( wenn C444 = 99 dann 100).
Immer wenn der Wert mit M1 übereinstimmt, dann soll diese Zelle in Spalte C immer wieder + 1 zählen. Also 23 +1 dann 24 + 1 dann 25 +1 usw usw.


Vielleicht kann mir da jemand helfen,

미리 감사드립니다.

LG Stfan
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

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