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

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

Normális esetben az Excelben az F5 vagy a Futtatás gombot megnyomhatjuk a VBA kód végrehajtásához. De próbáltad már futtatni az adott makrókódot, amikor egy cella értéke megváltozik? Ebben a cikkben néhány gyors trükköt mutatok be, hogy kezelje ezt a munkát az Excel programban.

Futtassa vagy hívja a makrót, amikor egy adott cella értéke megváltozik a VBA kóddal

Futtassa vagy hívja a makrót, ha bármely cellaérték megváltozik egy tartományban VBA kóddal


nyíl kék jobb buborék Futtassa vagy hívja a makrót, amikor egy adott cella értéke megváltozik a VBA kóddal

Ha makrokódot akarunk futtatni egy cellaérték megváltoztatásával, a következő VBA-kód kedvezhet Önnek, kérjük, tegye a következőket:

1. Kattintson a jobb gombbal a lap fülére, amelyen a makrót végre szeretné hajtani, ha a cella értéke megváltozik, majd válassza a 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 megváltozik:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Call Mymacro
    End If
End Sub

doc futtassa a makrót, ha a cella megváltozik 1

Megjegyzések: A fenti kódban A1 az a konkrét cella, amely alapján futtatni szeretné a kódot, Mymacro a futtatni kívánt makrónév. Kérjük, változtassa meg őket az Ön igényeinek megfelelően.

2. Ezután mentse el és zárja be a kódablakot. Most, amikor értéket ad meg vagy módosít az A1 cellában, az adott kód egyszerre aktiválódik.


nyíl kék jobb buborék Futtassa vagy hívja a makrót, ha bármely cellaérték megváltozik egy tartományban VBA kóddal

Ha makrót akar futtatni vagy aktiválni, amikor bárki cellaértéke megváltozik egy cellatartományban, a következő kód segíthet.

1. Kattintson a jobb gombbal a lap fülére, amelyen a makrót végre szeretné hajtani, ha a cella értéke megváltozik, majd válassza a 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 bármely cellaérték megváltozik egy tartományban:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Mymacro
End If
End Sub

doc futtassa a makrót, ha a cella megváltozik 2

Megjegyzések: A fenti kódban A1: B100 az a konkrét cella, amely alapján futtatni szeretné a kódot, Mymacro a futtatni kívánt makrónév. Kérjük, változtassa meg őket az Ön igényeinek megfelelően.

2. Ezután mentse el és zárja be a kódablakot. Most, amikor az A1: B100 bármely cellájában megad vagy módosít egy értéket, az adott kód azonnal végrehajtásra kerül.


Távolítsa el az összes makrót több munkafüzetből

Kutools az Excel számára's Kötegelt összes makró eltávolítása segédprogram segítségével eltávolíthatja az összes makrót több munkafüzetből, amire szüksége van. Töltse le és ingyenes próbaverziót Kutools for Excel most!

Kutools az Excel számára: több mint 300 praktikus Excel-bővítménnyel, ingyenesen, korlátozás nélkül, 30 nap alatt kipróbálható. Töltse le és ingyenes próbaverziót most!


Kapcsolódó cikkek:

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

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

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 (17)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez a modul nekem nem működik. Azt mondja, ha a cella ÉRTÉKE megváltozik, akkor végrehajtja a kódot. Azt tapasztalom, hogy ha begépelek a cellába, akkor működik, de ha a cella értékét megváltoztatja egy képlet, például egy Counta, akkor nem hajtódik végre. Van megoldása makró végrehajtására, amikor az ÉRTÉK egy képlet révén változik? Köszönöm, Wayne
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanaz a probléma, mint Wayne. Bármilyen segítség nagyon hálás! Köszi Ronnie
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló srácok,

Igen, a fenti kód csak akkor érhető el, ha a cellaérték manuálisan változik. Ha egy adott makrókódot automatikusan le kell futtatnia, amikor a képlet eredménye megváltozik a relatív cellák változásával, kérjük, olvassa el ezt a cikket:
https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
Kérjük, próbálja ki, és remélem válaszol.
A weboldal moderátora ezt a megjegyzést minimalizálta
Nem működik... és manuálisan módosítom a cellaértéket. Van valami előkonfiguráció, amit be kell állítani?
A weboldal moderátora ezt a megjegyzést minimalizálta
Tesztelje ezt az eljárásban, és használja paraméterként


Private Sub Worksheet_Change (ByVal Target As Range)

MsgBox Target.Address & "-" e Target.AddressLocal

End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Igen, a leírás szerint ki kell váltania, ha az érték változik, de a második kód szerint akkor van, ha az érték semmi, és az első nem vált ki érték változáskor sem, de ha megnyomom az F5 billentyűt, amikor megnézem a kódot, akkor azt akarja. a MyMacro elindításához, de úgy tűnik, hogy nem reagál annyira az értékváltozásokra, mint a semmiből valamire vagy az ellenkezőjére.
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez nekem először működött az adatellenőrzési lista használatával, amely a lista kiválasztása alapján jelenít meg szöveget.
A weboldal moderátora ezt a megjegyzést minimalizálta
Nekem nagyon bevált! Az a dilemmám, hogy azt szeretném, ha ez egy relatív referenciamakró lenne, és különbség van aközött, hogy a bejegyzés mentéséhez az Enter billentyűt lenyomjuk, a cella törléséhez pedig a törlést.
A weboldal moderátora ezt a megjegyzést minimalizálta
Hé, hasznos kód. Arra gondoltam, hogy lehet-e gyűrűt szúrni a csere során cserélt cellák köré? És minden hétfőn visszaállítja a köröket?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Kevin,
Itt nincs ötlet a probléma megoldására, ha van valami jó megoldása, kérjük, kommentelje ide.
A weboldal moderátora ezt a megjegyzést minimalizálta
A makró, amelyet hívsz, hol található? Az enyém a Modules mappában van, de amikor bármilyen értéket beírok a munkalap bármely cellájába, fordítási hibát kapok, amely szerint:
Várt változó vagy eljárás, nem modul.

Kérem, segítsen.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Dr. Cartwright!
Elnézést, hogy ilyen későn válaszolok.
Igen, ahogy mondtad, a makrókódnak a modulban kell lennie, és meg kell változtatnia a kódnevet a saját nevére az alábbi képernyőképen látható módon:
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló, szép délutánt
quisiera saber el codigo para que se active una macro cuando cambia el valor de una celda de una columna, pero este valor cambia por formula,sin que el usuario introduzca ningun valor.
A weboldal moderátora ezt a megjegyzést minimalizálta
Sziasztok, a következő problémát oldom meg: Szeretném lekaparni a webhely címét, amikor az A oszlopba beillesztem a hivatkozást, és ezt az értéket a B oszlop megfelelő cellájába (mellette) helyezni. Úgy tűnik, a probléma az, hogy miután beillesztem a webhelyen az A oszlopban, a kód újrafutja a teljes listát az A2 oszloptól az "utolsó sorig" a kódban meghatározottak szerint. Van valami mód arra, hogy csak akkor módosítsuk a B oszlopot, ha egyetlen A oszlopot módosítunk? Azaz ha beilleszt egy hivatkozást az A36 oszlopba, akkor a B36-ban kapok egy címet, függetlenül attól, hogy a cella a használt tartomány közepén vagy a legalján van. Szeretném ezt használni anélkül, hogy több bemenetet újra kellene futtatnom a jelenlegi állapot szerint; (azaz az "i =2-nél az utolsó sorig" ciklus)? Ezenkívül szeretném módosítani az alábbi moduláris makróról, azaz sub-ról privát al-ra, amely reagál a változásra (azaz metszésfüggvényre), ahol a "cél" az A:A tartomány bármely cellája. Nagyon köszönöm!


Sub get_title_header()



Dim wb As Object

Dim doc mint objektum

Dim sURL As String

Dim lastrow As Long

lastrow = Lap1.Cells(Rows.Count, "A").End(xlUp).sor



Ha i = 2 Az utolsó sorba

Set wb = CreateObject("internetExplorer.Application")

sURL = Cellák (i, 1)



wb.navigate sURL

wb.Visible = False



Míg wb.Foglalt

DoEvents

Irányít



''HTML dokumentum

Állítsa be a doc = wb.document



Cells(i, 2) = doc.Title



Hiba esetén GoTo err_clear

Cells(i, 3) = doc.GetElementsByTagName("h1")(0).innerText

err_clear:

Ha Err <> 0 Akkor

Err.Clear

Folytatás Következő

Ha véget

wb.Kilépés

Tartomány(Cellák(i, 1), Cellák(i, 3)).Oszlopok.Automatikus illeszkedés

Következő i



End Sub




Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
1 munkafüzetet (BOM) próbálok automatizálni, amikor egy másik munkafüzet (alkatrészek állapota) módosításokat hajt végre. Az alkatrészek állapotfájlja 15 percenként frissül. Tudnom kell, hogyan automatizálhatok egy adott oszlopot, amikor ezek a változások bekövetkeznek? Bármilyen ötletet
A weboldal moderátora ezt a megjegyzést minimalizálta
Az alábbi kóddal elrejtettem a különböző oszlopokat a C3 cellában található legördülő listából való kijelöléstől függően, de miután a számítást a munkalapon bárhol elvégezték, MINDEN oszlop NEM REJTETT lesz. Hogyan tudom ezt kijavítani?

Private Sub Worksheet_Change (ByVal Target mint Range)

Oszlopok("D:F").Automatikus illeszkedés

Dim Proj1 As String
Dim Proj2 As String
Dim Proj3 As String
Dim Proj4 As String
Dim Proj5 As String
Dim Proj6 As String
Dim Proj7 As String
Dim Proj8 As String
Dim Proj9 As String
Dim Proj10 As String

Proj1 = ActiveWorkbook.Sheets("Projektek").Tartomány("A1").Érték
Proj2 = ActiveWorkbook.Sheets("Projektek").Tartomány("A2").Érték
Proj3 = ActiveWorkbook.Sheets("Projektek").Tartomány("A3").Érték
Proj4 = ActiveWorkbook.Sheets("Projektek").Tartomány("A4").Érték
Proj5 = ActiveWorkbook.Sheets("Projektek").Tartomány("A5").Érték
Proj6 = ActiveWorkbook.Sheets("Projektek").Tartomány("A6").Érték
Proj7 = ActiveWorkbook.Sheets("Projektek").Tartomány("A7").Érték
Proj8 = ActiveWorkbook.Sheets("Projektek").Tartomány("A8").Érték
Proj9 = ActiveWorkbook.Sheets("Projektek").Tartomány("A9").Érték
Proj10 = ActiveWorkbook.Sheets("Projektek").Tartomány("A10").Érték

Dim xRG As Range
Dim xHRrow As Integer
xRG beállítása = Tartomány("C3")
Ha nem metszik (Cél, xRG) akkor semmi

Ha Target.Value = Proj1 Akkor
Application.Columns("E:F").Hidden = igaz
Application.Columns("D").Hidden = False

ElseIf Target.Value = Proj2 Akkor
Tartomány("D:D, F:F").EntireColumn.Hidden = Igaz
Application.Columns("E").Hidden = False

Ha véget
Ha véget
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Pontosan ezt kerestem. Amikor a felhasználó beír egy értéket egy cellába, egy egyszerű rendezési makró fut le. A makró önmagában jól fut, de a javasolt kód használatával érvénytelen tulajdonsághasználati hibát kapok.

Mi lehet a probléma?
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