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

 Hogyan futtatható a makró az cellák értéke alapján az Excelben?

Tegyük fel, hogy több makrokód is van a munkafüzetemben, és most ezeket a kódokat a cella értéke alapján szeretném futtatni. Ebben a cikkben számos olyan helyzetről fogok beszélni, amelyet mindennapi munkája során elszenvedhet az Excel használata során.

Futtassa vagy indítsa el a makrót, ha a cella értéke nagyobb vagy kisebb, mint egy VBA kóddal ellátott adott érték

Futtassa vagy indítsa el a makrót, ha a cella értéke megegyezik a VBA kóddal megadott szöveggel


nyíl kék jobb buborék Futtassa vagy indítsa el a makrót, ha a cella értéke nagyobb vagy kisebb, mint egy VBA kóddal ellátott adott érték

Például, ha az A1 cellában az érték 10 és 50 között van, futtassa az 1. makrót, és ha az érték nagyobb, mint 50, akkor futtassa a 2. makrót. Ennek a feladatnak az Excelben történő megoldásához kérjük, alkalmazza a következő VBA kódot.

1. Kattintson a jobb gombbal azon a lapfülön, amelyen a makrót egy cellaérték alapján szeretné végrehajtani, majd válassza a lehetőséget Kód megtekintése a helyi menüből és a megnyitottból Microsoft Visual Basic alkalmazásokhoz ablakba másolja és illessze be a következő kódot az üres modulba:

VBA-kód: Futtassa a makrót, ha a cella értéke nagyobb vagy kisebb, mint:

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

doc futtatási makró az 1. cellaérték alapján

Megjegyzések: A fenti kódban:

A1 az a cella, amely tartalmazza azt a konkrét értéket, amely alapján a makrót futtatni szeretné;

10–50. Eset: Makró1: azt jelenti, ha az érték 10 és 50 között van, futtassa a Macro1-et;

Eset> 50: Makró2: azt jelenti, ha az érték nagyobb, mint 50, futtassa a Macro2-t.

Kérjük, módosítsa a tézisek makróneveit és kritériumait igényei szerint, és további kritériumokat is felvehet a Ügy szkripteket.

2. Ezután mentse el és zárja be ezt a kódablakot. Most, amikor a megadott érték 10 és 50 között van az A1 cellában, a Macro1 aktiválódik, ha a megadott érték nagyobb, mint 50, akkor a Macro2 fut.


nyíl kék jobb buborék Futtassa vagy indítsa el a makrót, ha a cella értéke megegyezik a VBA kóddal megadott szöveggel

Ha például a cellában egy adott szöveg alapján szeretné elindítani a makrót, futtassa a makrót1, ha a „Törlés” szöveget írta be, és a makrót2 futtatni, ha a „Beszúrás” szöveget írta be. A következő kód jót tehet Önnek.

1. Kattintson a jobb gombbal arra a munkalapra, amelyen a makrót a cella értéke alapján szeretné végrehajtani, majd válassza a lehetőséget Kód megtekintése a helyi menüből és a megnyitottból Microsoft Visual Basic alkalmazásokhoz ablakba másolja és illessze be a következő kódot az üres modulba:

VBA-kód: Futtassa a makrót, ha a cellaérték egy adott szöveg

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 

doc futtatási makró az 2. cellaérték alapján

Megjegyzések: A fenti kódban:töröl"És"betétlap”Azok a cellaszövegek, amelyek alapján makrókat akar futtatni, és Macro1 és a Macro2 azok a makrók, amelyeket szöveg alapján akar végrehajtani. Kérjük, változtassa meg őket az Ön igényeinek megfelelően.

2. Ezután mentse el ezt a kódot, és zárja be az ablakot. Most, amikor beírja a „Törlés” szöveget az A1 cellába, a makró1 elindul, ha a „Beszúrás” szöveget írja be, akkor a makró2 végrehajtásra kerül.


Kapcsolódó cikkek:

Hogyan lehet futtatni a makrót, amikor a cellák értéke megváltozik az Excelben?

Hogyan lehet automatikusan futtatni a makrót az Excel nyomtatása előtt?

Hogyan lehet futtatni a makrót az Excel legördülő listájából kiválasztott érték alapján?

Hogyan lehet futtatni a makrót az Excel hiperhivatkozásaira kattintva?

Hogyan lehet futtatni a makrót, ha a lapot kiválasztjuk egy munkafüzetből?


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (19)
Az 5-t az 5-ből kiértékelte · 1 értékelés
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, mit szólnál, ha két cellán alapuló makrót szeretnél futtatni? Az egyik cella szöveg alapú, a másik cella számértékekkel rendelkezik? Akkor érdemes makrót hívni, ha a két cella pontosan azt mutatja, amit akarsz, például "IGEN" az első cellánál, és 1 a második cellánál, ha nem, egy előugró ablakban a "Nem található" felirat jelenik meg.
A weboldal moderátora ezt a megjegyzést minimalizálta
Követelmény:
A kiválasztás alapján
Egy legördülő lista jelenik meg az alábbi három, azonos dimenziójú tulajdonsághoz.
És lesz három származtatott cella, amelyek a cellákból származnak (G46, G47 és G48)

Forgatókönyv:
Ha kiválasztok egy értéket a költséghely legördülő listából, akkor a költséghely származtatott cellát (K46) fel kell tölteni a költséghely legördülő listából (H46) kiválasztott értékkel, és a másik két származtatott cella (K47 és k48) üres lesz.

Hasonlóképpen, ha a Költségvetés-kezelő legördülő listából választok értéket, a Költségkeret-kezelőből származó cellát fel kell tölteni a Költségvetés-kezelő legördülő listából (H47) kiválasztott értékkel, és a másik két származtatott cellának (K45 és k48) üresnek kell lennie.
A weboldal moderátora ezt a megjegyzést minimalizálta
Eredményelemzéssel dolgozom. Ebben az esetben az excelben lévő adatok ilyenek lesznek: Név, Alnév, Csomag. Most szeretném megtalálni az összes sikeres vagy sikeres jelölt számát az eredményből. Hogyan szerezhetem meg. Mert van 6 különböző tantárgyam és azok eredményei egyetlen excel lapon. Ha a hallgató egy tárgyból megbukott, nem lesz sikeres. Hogyan lehet eltávolítani a nevüket az összes tárgyból.
A weboldal moderátora ezt a megjegyzést minimalizálta
Kérjük, javítsa ki a kódot ugyanazon a munkalapon.
AZ ELSŐ KÓD TÖKÉLETESEN MŰKÖDIK
Private Sub Worksheet_Change (ByVal Target mint Range)
Ha nem metszik(cél, tartomány("D1")) akkor semmi
Esettartomány kiválasztása ("D1")
"0.5" eset: Fél
"1" eset: Egy
"1.25" eset: OneTwentyFive
Vége kiválasztása
Ha véget
End Sub

A MÁSODIK KÓD NEM MŰKÖDIK (kérjük, javítsa ki az alábbiakat)
Privát almódosítás (ByVal cél tartományként)
Ha nem metszik(cél, tartomány("D2")) akkor semmi
Esettartomány kiválasztása ("D2")
"9.53" eset: kilencpont öthárom
Vége kiválasztása
Ha véget
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Olá, quero fazer o seguinte:
Na Celula A1, assim que ela estiver preenchida passe para a cellula 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.

Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hola, una consulta, como se haría si por ejemplo dado un numero se pueda ejecutar las dos macros
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Gustavo
A probléma megoldásához használja a következő kódot:
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

Próbáld ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Jó napot,
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 correctement.

Merci d'avance
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Gilles!
Be kell illeszteni a Pörgetés gomb (ActiveX Control) először, majd jobb klikkelj rá, válassz Kód megtekintése, majd másolja ki és illessze be az alábbi kódot a meglévő szkriptek közé,
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

Próbáld ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hi!

Nagyon új vagyok a VBA-ban, és kipróbáltam ezt a megoldást egy excel-lapon. Alapvetően csak van egy hosszú listám az Excelben, ahol a T oszlopba írd be az Igen vagy a Nem, és szeretném, ha beírnád: Igen, futtass egy makrót... Sokféleképpen próbáltam a tartomány meghatározását, de semmi sem működik.

Al-worksheet_change(ByVal cél tartományként)

Cél beállítása = Tartomány ("T:T")
Ha target.Value = "Igen" Akkor
Hívja a Macro1-et
Ha véget

End Sub

Kiemelem ezt a problémát (futásidejű hiba-típusú eltérés): Ha target.Value = "Igen" Akkor

Tud valaki segíteni?

Üdvözlettel, Isabella
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Westergaard
Lehet, hogy a következő VBA-kód segíthet: (Megjegyzés: Kérjük, változtassa meg a nevét Macro1 a saját kódnevére)
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

Próbáld ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagyon szépen köszönjük! Most már működik :)
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Hogyan módosítható ez a kódalap az A1 cella képlet számítási eredményén
Almunkalap_Calculate()
Kérem, segítsen

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Ha Target.Cells.Count > 1, akkor lépjen ki a Sub-ból
Ha IsNumeric(Target) And Target.Address = "$A$1" Akkor
Válassza a Case Target.Value lehetőséget
10–50. Eset: Makró1
Eset> 50: Makró2
Vége kiválasztása
Ha véget
End Sub
Az 5-t az 5-ből kiértékelte
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia FG!
Ahhoz, hogy a kód a képletcellákban működjön, használja az alábbi kódot:
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

Kérem, próbálja ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ciao Skyyang. Spero tu possa aiutarmi. Ho un programno 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 on-line, ma suona ogni volta che c'è un novo massimo o un un novo minimo nella riga in cui il program sta aggiornando i prezzi. Pensi che il problem si possa risolvere? Grazie per l'attenzione
Stefano
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló,
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.

Come posso ovviare?
Eventualmente come potrei evitare di utilizzare il condizionale sulla cella e far verificare al list to se la cella che deve far avviare le macro è compilata o meno?

Grazie
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló,
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.

Come posso fare?
Riesco a far funzionare il tutto se inserisco in A1 manualmente un valore (in questo caso vero o falso).

Köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Carlo,
Valójában a cikk második kódja megoldhatja a problémát.
Megjegyzések: Csak módosítania kell az igaz és hamis szöveget a kódban, és módosítania kell a kódnevet a sajátjára.
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 


Kérjük, próbálja újra, köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló,

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,

Köszönöm előre.

LG Stfan
Még senki sem írt megjegyzést
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi