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

Sut i sbarduno neu redeg Macro trwy glicio cell benodol yn Excel?

Wrth weithio gyda Microsoft Excel, efallai eich bod chi'n gwybod sut i redeg Macro penodol gyda Botwm Gorchymyn. Ond a ydych chi'n gwybod sut i redeg Macro trwy glicio ar gell benodol mewn taflen waith yn unig? Bydd yr erthygl hon yn dangos dull i chi o sbarduno Macro trwy glicio ar gell benodol mewn manylion.

Sbarduno neu redeg Macro trwy glicio cell benodol gyda chod VBA


Sbarduno neu redeg Macro trwy glicio cell benodol gyda chod VBA

Gall y cod VBA canlynol eich helpu i redeg Macro trwy glicio cell benodol yn Excel. Gwnewch fel a ganlyn.

1. Ar y daflen waith gyda'r gell mae angen i chi glicio i redeg Macro, cliciwch ar y dde ar y tab dalen, ac yna cliciwch Gweld y Cod o'r ddewislen cyd-destun.

2. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, copïo a gludo'r sgript VBA isod i mewn i'r ffenestr Cod.

Cod VBA: Sbarduno neu redeg Macro trwy glicio cell benodol

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

Nodiadau:

1. Yn y cod, D4 yw'r gell y byddwch chi'n ei chlicio i redeg Macro;

2. Amnewid enw'r cod FyMacro gyda'r Macro byddwch chi'n rhedeg yn y daflen waith. Gweler y screenshot:

3. Gwasgwch y Alt + Q allweddi ar yr un pryd i gau'r Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.

O hyn ymlaen, wrth glicio ar gell D4 yn y daflen waith gyfredol, bydd eich Macro penodedig yn cael ei sbarduno ar unwaith.


Erthyglau perthnasol:


Yr Offer Cynhyrchedd Swyddfa Gorau

Mae Kutools for Excel yn Datrys y rhan fwyaf o'ch Problemau, ac yn Cynyddu Eich Cynhyrchedd 80%

  • Ailddefnyddio: Mewnosod yn gyflym fformwlâu cymhleth, siartiau ac unrhyw beth rydych chi wedi'i ddefnyddio o'r blaen; Amgryptio Celloedd gyda chyfrinair; Creu Rhestr Bostio ac anfon e-byst ...
  • Bar Fformiwla Gwych (golygu llinellau lluosog o destun a fformiwla yn hawdd); Cynllun Darllen (darllen a golygu nifer fawr o gelloedd yn hawdd); Gludo i'r Ystod Hidlo...
  • Uno Celloedd / Rhesi / Colofnau heb golli Data; Cynnwys Celloedd Hollt; Cyfuno Rhesi / Colofnau Dyblyg... Atal Celloedd Dyblyg; Cymharwch y Meysydd...
  • Dewiswch Dyblyg neu Unigryw Rhesi; Dewiswch Blank Rows (mae pob cell yn wag); Darganfyddiad Gwych a Darganfyddiad Niwlog mewn Llawer o Lyfrau Gwaith; Dewis ar Hap ...
  • Copi Union Celloedd Lluosog heb newid cyfeirnod fformiwla; Auto Creu Cyfeiriadau i Daflenni Lluosog; Mewnosod Bwledi, Blychau Gwirio a mwy ...
  • Testun Detholiad, Ychwanegu Testun, Tynnu yn ôl Swydd, Tynnwch y Gofod; Creu ac Argraffu Subtotals Paging; Trosi rhwng Cynnwys a Sylwadau Celloedd...
  • Hidlo Super (arbed a chymhwyso cynlluniau hidlo i ddalenni eraill); Trefnu Uwch yn ôl mis / wythnos / dydd, amlder a mwy; Hidlo Arbennig gan feiddgar, italig ...
  • Cyfuno Llyfrau Gwaith a Thaflenni Gwaith; Uno Tablau yn seiliedig ar golofnau allweddol; Rhannwch Ddata yn Daflenni Lluosog; Trosi Swp xls, xlsx a PDF...
  • Mwy na 300 o nodweddion pwerus. Yn cefnogi Swyddfa / Excel 2007-2019 a 365. Yn cefnogi pob iaith. Defnydd hawdd yn eich menter neu sefydliad. Nodweddion llawn treial am ddim 30 diwrnod. Gwarant arian yn ôl 60 diwrnod.
tab kte 201905

Mae Tab Office yn Dod â rhyngwyneb Tabbed i'r Swyddfa, a Gwneud Eich Gwaith yn Haws o lawer

  • Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
  • Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
  • Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!
gwaelod officetab
sylwadau (33)
Dim sgôr eto. Byddwch y cyntaf i sgorio!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Sbardun Neu Rhedeg Macro Trwy Glicio Cell Benodol Gyda Chod VBA, ni allai gael hwn i weithio. Rhoddais gynnig arni mewn llawer o wahanol ffyrdd, ond ni chyflawnodd erioed yr hyn a addawyd.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Bydd y cod hwn ond yn gweithio os byddwch yn ei roi yn y modiwl "Y Llyfr Gwaith Hwn". Nid yw'n gweithio ar fodiwl cyffredinol.
enw llyfr gwaith > Microsft Excel Objects > ThisWorkbook.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Bydd y cod hwn yn gweithio ar fodiwl cod taflen waith. Mae angen i chi dde-glicio ar y tab taflen a chlicio ar 'View Code'. Bydd hyn yn agor modiwl cod ar gyfer y daflen waith honno yn unig. Yna gludwch y cod a grybwyllir.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Os ydych chi eisiau cael macros lluosog, mae celloedd yn rhedeg macros gwahanol ar yr un dudalen - a yw hynny'n bosibl?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Annwyl Simon,
Gall y sgript VBA isod eich helpu i redeg gwahanol macros trwy glicio ar gelloedd ar yr un dudalen.

Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)
Os yw Target.Count = 1 Yna
Os Nid yw Croestorri (Targed, Ystod ("D4")) Yn Dim Yna Ffoniwch MyMacro1
Os Nid yw Croestorri (Targed, Ystod ("D8")) Yn Dim Yna Ffoniwch MyMacro2
Os Nid yw Croestorri (Targed, Ystod ("D10")) Yn Dim Yna Ffoniwch MyMacro3
Gorffennwch Os
Is-End

Ychwanegwch linell "Os Ddim yn Croestorri (Targed, Ystod ("D10")) A yw Dim Yna Galwch MyMacro" i redeg mwy o facro trwy glicio cell. A newidiwch yr enwau celloedd a macro yn y cod yn seiliedig ar eich anghenion.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Nid yw'n gweithio ar fy Excel. Mae'r cod yn gywir?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Camila,
Ymddiheuriadau am yr anghyfleustra. Rhowch gynnig ar y cod VBA isod.

Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)
Dim xRgArr Fel Amrywiad
Dim xFunArr Fel Amrywiad
Dim xFNum Fel Cyfanrif
Dim xStr Fel Llinyn
Dim xRg Fel Ystod
xRgArr = Array("A1", "D1", "C1") 'Celloedd a ddefnyddir i sbarduno macro
xFunArr = Array("Enw cod1", "Cod name2", "Cod name3") 'Yr enwau cod cyfatebol
Os Selection.Count = 1 Yna
Ar gyfer xFNum = 0 I UBound(xRgArr)
Gosod xRg = ActiveSheet.Range(xRgArr(xFNum))
Os Nid yw Croestorri (Targed, xRg) Yn Dim Yna
xStr = xFunArr(xFNum)
Cais.Rhedeg xStr
Gorffennwch Os
Digwyddiadau
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Gweithiodd hyn yn berffaith a bydd yn arbed llawer o amser i mi - diolch am rannu eich gwybodaeth - gwerthfawrogi'n fawr!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Rwy'n falch y gallwn helpu.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Gwych. Mae'n gweithio'n dda... Diolch....
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Hi.

Mae hyn yn gweithio'n dda gennyf, ond hoffwn ychwanegu amod at redeg y macro. Dim ond os yw'r gell ochr yn ochr â'r gell y byddaf yn clicio ynddi yn cynnwys gwerth penodol y byddaf am redeg y macro.
ee Pan fyddaf yn clicio ar gell F6, rwyf am i'r macro redeg os yw cell E6 yn cynnwys "x", ond os yw cell E6 yn wag, rhaid i'r macro beidio â rhedeg.
Gobeithio bod hynny'n gwneud synnwyr.
diolch

dyma fy nghod gwreiddiol heb yr amod:


Opsiwn Eglur

Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)
Os Selection.Count = 1 Yna
Os Ddim yn Croestorri (Targed, Ystod ("F6:F18")) Yn Dim Yna
Call datePick
Gorffennwch Os
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Heia,
Gall y cod VBA canlynol eich helpu i ddatrys y broblem. Ceisiwch ddiolch i chi am eich sylw.

Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)
Dim xRg Fel Ystod
Os Ddim yn Croestorri (Targed, Ystod ("F6:F18")) Yn Dim Yna
Gosod xRg = ActiveSheet.Cells(Target.Row, Target.Column - 1)
Os (xRg.Value="") Neu (xRg.Value <> "X") Yna Gadael Is
Call datepick
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Diolch ond beth am gelloedd unedig?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Alber,
Nid yw'r cod yn gweithio ar gyfer celloedd unedig.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Rwy'n defnyddio OpenOffice ac wedi clicio ar y dde ar ddalen-tab a digwyddiadau dethol ac yna dewis y macro hwn o MyMacros.. Fodd bynnag rwy'n cael a gwall ar y llinell ganlynol: If Selection.Count = 1 Yna >>> "Gwall amser rhedeg sylfaenol, newidyn heb ei ddiffinio...
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Hi James,
Dim ond ar gyfer Microsoft Office Excel y mae'r cod yn gweithio. Diolch i chi am eich sylw.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Fy nghod llawn yn y macro hwn yw:


Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)

Dim val Fel Llinynnol
REM val = Ystod ("A2").Gwerth

Os Selection.Count = 1 Yna
Os Ddim yn Croestorri (Targed, Ystod ("D24")) Yn Dim Yna
REM Galw MyMacro
val = Ystod ("D24").Gwerth
Ystod ("B27").Gwerth = gwerth
Gorffennwch Os
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Mae'r pwnc hwn yn ddiddorol iawn ac mae gen i ddiddordeb ond nid wyf yn gwybod ble i ddod o hyd, diolch byth eich bod chi'n creu'r pwnc hwn, gobeithio y bydd pawb yn fy helpu http://run-3.online
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Excel 2002 (XP): Os agorir llyfr gwaith trwy ddewis "File" a phwyso "Shift" mae'n analluogi macros yn y ddalen honno, y broblem yw, os byddaf yn dewis "Tools> Macro> Macros ..." gallaf redeg y macro beth bynnag, sut i ddatrys?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo Roger,
Nid ydym wedi profi'r cod yn Excel 2002(XP). Beth am ddefnyddio'r fersiwn mwy diweddar o Microsoft Office? Bydd yn haws i'ch gwaith.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Yr un canlyniad yn 2010.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Beth am ddefnyddio fersiwn mwy diweddar bydd yn haws
https://games.lol/racing/
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Diolch, ond beth am sawl cell am glicio am redeg sawl macro.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Heia,
Rhowch gynnig ar y cod VBA isod.

Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)
Dim xRgArr Fel Amrywiad
Dim xFunArr Fel Amrywiad
Dim xFNum Fel Cyfanrif
Dim xStr Fel Llinyn
Dim xRg Fel Ystod
xRgArr = Array("A1", "D1", "C1") 'Celloedd a ddefnyddir i sbarduno macro
xFunArr = Array("Enw cod1", "Cod name2", "Cod name3") 'Yr enwau cod cyfatebol
Os Selection.Count = 1 Yna
Ar gyfer xFNum = 0 I UBound(xRgArr)
Gosod xRg = ActiveSheet.Range(xRgArr(xFNum))
Os Nid yw Croestorri (Targed, xRg) Yn Dim Yna
xStr = xFunArr(xFNum)
Cais.Rhedeg xStr
Gorffennwch Os
Digwyddiadau
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Diolch am y cod hwn. A yw'n bosibl cael hwn i weithio trwy glicio ar gell sydd wedi'i chyfuno ag eraill?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo M.Symonds,
Gall y cod yn yr erthygl hon wneud ffafr i chi: https://www.extendoffice.com/documents/excel/4354-excel-click-on-cell-to-run-macro.html
Diolch am eich sylw.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
helo, roeddwn i'n ceisio defnyddio'r cod hwn i Rhedeg macro pastio ond ni all ymddangos i ddarganfod sut i gludo'r macro yn iawn.

dyma fy Marco gwreiddiol

Is-gludo()
'
' Gludo Macro
'

'
Ystod ("B34"). Dewiswch
Fformat ActiveSheet.PasteSpecial:="HTML", Dolen:=Gau, DisplayAsIcon:= _
Gau, NoHTMLFormatting:=Gwir
Is-End


gwerthfawrogir unrhyw gymorth
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, Diolch am eich pwnc diddorol. Beth os ydw i, er enghraifft, eisiau clicio ar D4 yn Sheet1 a gweld canlyniad Macro yn Sheet2!F3.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Nid yw'n gweithio mwyach.
Nid yw Worksheet_SelectionChange yn bodoli yn ddiofyn. Sy'n golygu na allwch ddefnyddio hynny i sbarduno macro.

Cyfeirir at yr unig is-ymgorfforedig y gallwch ei ddefnyddio yn y gwymplen "Workbook", felly...

Yr unig beth agosaf y gallwch chi ei wneud yw defnyddio Workbook_SheetBeforeDoubleClick. Ond bydd yn mynd i mewn modd Golygu (yn dal ddim yn fargen fawr).
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo CodeKiller.Worksheet_SelectionChange yn unig sy'n bodoli yn y golygydd Dalen(Cod). De-gliciwch ar y tab dalen a chliciwch ar View Code i actifadu golygydd y Ddalen (Cod).
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Mae'n bwysig pwysleisio mai dim ond yn y daflen waith y mae'r macro yn rhedeg.
Mae'r rhai ohonom sy'n defnyddio'r golygydd sylfaenol gweledol rheolaidd yn aml yn storio macros mewn mannau eraill heblaw'r daflen waith gyfredol.
Ni fydd yr un o'r codau hyn yn gweithio yn y sefyllfa honno.
Rwy'n gweld y cod hwn yn llawer symlach ac mae'n gweithio'n dda iawn i mi: 

Is-daflen Waith Breifat_SelectionChange(ByVal Target As Excel.Range)
Os Ddim yn Croestorri (Ystod ("d1"), Targed) Yn Dim Yna
Galwch aa
Gorffennwch Os
Is-End
Is-aa() ' rhowch eich cod yma
Ystod ("D1"). Dewiswch
Dewis.Copy
Ystod ("F1"). Dewiswch
ActiveSheet.PasteEnd Is
Ffynnon John
jnw.wells@gmail.com
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo John Wells, Diolch am rannu.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
I'r rhai sydd am i hyn weithio i gelloedd unedig, y ffordd gyflymaf a mwyaf budr yw diweddaru Llinell 2 fel a ganlyn:
Opsiwn Penodol

Is-daflen Waith Breifat_SelectionChange(FalVal Target As Range)
Os Selection.Count> 0 Yna
Os Ddim yn Croestorri (Targed, Ystod ("D4")) Yn Dim Yna
Ffoniwch MyMacro
Gorffennwch Os
Gorffennwch Os
Mae End SubSelection.Count yn cael ei ddefnyddio i benderfynu a oes dewis wedi'i wneud cyn gweithredu'r macro sy'n weddill. Os yw eich dewis yn cynnwys pedair cell sydd wedi'u huno, bydd Selection.Count yn hafal i 4, ac ni fydd y cod sy'n weddill byth yn gweithredu. Gallwch hefyd newid llinell 2 i'r union nifer o gelloedd a unwyd, ond bydd hynny'n achosi problemau os byddwch uno celloedd ychwanegol.
Nid oes unrhyw sylwadau wedi'u postio yma eto
Gadewch eich sylwadau
Postio fel Gwestai
×
Graddiwch y swydd hon:
0   Cymeriadau
Lleoliadau a Awgrymir