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

Excel'de belirli bir hücreye tıklayarak bir Makro nasıl tetiklenir veya çalıştırılır?

Microsoft Excel ile çalışırken, belirli bir Makroyu bir Komut Düğmesi ile nasıl çalıştıracağınızı öğrenebilirsiniz. Ancak bir çalışma sayfasındaki belirli bir hücreye tıklayarak bir Makroyu nasıl çalıştıracağınızı biliyor musunuz? Bu makale, ayrıntılı olarak belirli bir hücreye tıklayarak bir Makroyu tetikleme yöntemini gösterecektir.

VBA kodu ile belirli bir hücreye tıklayarak bir Makroyu tetikleyin veya çalıştırın


VBA kodu ile belirli bir hücreye tıklayarak bir Makroyu tetikleyin veya çalıştırın

Aşağıdaki VBA kodu, Excel'de belirli bir hücreyi tıklatarak bir Makroyu çalıştırmanıza yardımcı olabilir. Lütfen aşağıdaki işlemleri yapın.

1. Bir Makroyu çalıştırmak için tıklamanız gereken hücrenin bulunduğu çalışma sayfasında, sayfa sekmesine sağ tıklayın ve ardından Kodu Görüntüle bağlam menüsünden.

2. içinde Uygulamalar için Microsoft Visual Basic penceresinde aşağıdaki VBA komut dosyasını kopyalayıp Kod penceresine yapıştırın.

VBA kodu: Belirli bir hücreye tıklayarak bir Makroyu tetikleyin veya çalıştırın

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

notlar:

1. Kodda, D4, Makroyu çalıştırmak için tıklayacağınız hücredir;

2. Lütfen kod adını değiştirin Makrom Makro ile çalışma sayfasında çalışacaksınız. Ekran görüntüsüne bakın:

3. Tuşuna basın. Ara Toplam + Q kapatmak için aynı anda tuşları Uygulamalar için Microsoft Visual Basic pencere.

Şu andan itibaren, geçerli çalışma sayfasındaki D4 hücresine tıkladığınızda, belirttiğiniz Makro hemen tetiklenecektir.


İlgili Makaleler:


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı
Yorumları sıralama ölçütü
Yorumlar (37)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
VBA Koduyla Belirli Bir Hücreyi Tıklayarak Bir Makroyu Tetikleyin veya Çalıştırın, bunun çalışmasını sağlayamadı. Birçok farklı şekilde denedim ama vaat edileni asla elde etmedi.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kod yalnızca "ThisWorkbook" modülüne yerleştirirseniz çalışır. Genel bir modül üzerinde çalışmaz.
çalışma kitabıadı > Microsft Excel Nesneleri > ThisWorkbook.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kod, çalışma sayfası kod modülünde çalışacaktır. Sayfa sekmesine sağ tıklayıp 'Kodu Görüntüle'ye tıklamanız gerekir. Bu, yalnızca o çalışma sayfası için kod modülünü açacaktır. Ardından belirtilen kodu yapıştırın.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Birden fazla makroya, aynı sayfada farklı makrolar çalıştıran hücrelere sahip olmak istiyorsanız - bu mümkün mü?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Sevgili Simon,
Aşağıdaki VBA betiği, aynı sayfadaki hücrelere tıklayarak farklı makrolar çalıştırmanıza yardımcı olabilir.

Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Target.Count = 1 ise
Kesişmiyorsa (Hedef, Aralık ("D4")) Hiçbir Şey Değilse, MyMacro1'i Arayın
Kesişmiyorsa (Hedef, Aralık ("D8")) Hiçbir Şey Değilse, MyMacro2'i Arayın
Kesişmiyorsa (Hedef, Aralık ("D10")) Hiçbir Şey Değilse, MyMacro3'i Arayın
Eğer son
End Sub

Hücreyi tıklayarak daha fazla makro çalıştırmak için lütfen "Kesişim Değilse(Hedef, Aralık("D10")) Hiçbir Şey Değilse MyMacro'yu Arayın" satırını ekleyin. Ve koddaki hücre ve makro adlarını ihtiyaçlarınıza göre değiştirin.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Excel'imde çalışmıyor. Kod doğru mu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Camila,
Rahatsızlıktan dolayı özür dileriz. Aşağıdaki VBA kodunu deneyin.

Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Varyant Olarak Dim xRgArr
Varyant Olarak Dim xFunArr
Tamsayı olarak xFNum Dim
xStr'yi Dize Olarak Kıs
Aralık olarak Dim xRg
xRgArr = Array("A1", "D1", "C1") 'Makroyu tetiklemek için kullanılan hücreler
xFunArr = Array("Kod adı1", "Kod adı2", "Kod adı3") 'Karşılık gelen kod adları
Selection.Count = 1 ise
xFNum = 0 için UBound(xRgArr) için
xRg = ActiveSheet.Range(xRgArr(xFNum)) ayarla
Kesişmiyorsa (Hedef, xRg) O Zaman Hiçbir Şey Değildir
xStr = xFunArr(xFNum)
Application.Run xStr
Eğer son
Sonraki
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu mükemmel bir şekilde çalıştı ve bana çok zaman kazandıracak - bilginizi paylaştığınız için teşekkür ederiz - çok teşekkürler!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Yardım edebildiğime sevindim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Harika. İyi çalışıyor... Teşekkürler....
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba.

Bu iyi çalışıyor, ancak makroyu çalıştırmak için bir koşul eklemek istiyorum. Makroyu yalnızca, tıkladığım hücrenin yanındaki hücre belirli bir değer içeriyorsa çalıştırmak istiyorum.
örneğin F6 hücresine tıkladığımda, E6 hücresi "x" içeriyorsa makronun çalışmasını istiyorum, ancak E6 hücresi boşsa makronun çalışmaması gerekir.
Umarım bu mantıklıdır.
Teşekkürler

işte koşulsuz orijinal kodum:


Seçenek Açıkça

Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Selection.Count = 1 ise
Kesişmiyorsa(Hedef, Aralık("F6:F18")) O Zaman Hiçbir Şey Değildir
Çağrı tarihiSeç
Eğer son
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Aşağıdaki VBA kodu, sorunu çözmenize yardımcı olabilir. Lütfen bir deneyin ve yorumunuz için teşekkür ederiz.

Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Aralık olarak Dim xRg
Kesişmiyorsa(Hedef, Aralık("F6:F18")) O Zaman Hiçbir Şey Değildir
xRg = ActiveSheet.Cells(Target.Row, Target.Column - 1) ayarla
If (xRg.Value = "") Veya (xRg.Value <> "X") Sonra Sub Exit
Çağrı tarihi
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Teşekkürler, peki ya birleştirilmiş hücreler?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Alber,
Kod, birleştirilmiş hücreler için çalışmaz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
OpenOffice kullanıyorum ve sayfa sekmesine sağ tıklayıp olayları seçtikten sonra MyMacros'tan bu makroyu seçtim. Ancak şu satırda hata alıyorum: If Selection.Count = 1 Sonra >>> "Temel çalışma zamanı hatası, değişken tanımlı değil...
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba James,
Kod yalnızca Microsoft Office Excel için çalışır. Yorumun için teşekkür ederim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu makrodaki tam kodum:


Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)

Dim val As String
REM değeri = Aralık("A2").Değer

Selection.Count = 1 ise
Kesişmiyorsa(Hedef, Aralık("D24")) O Zaman Hiçbir Şey Değildir
REM MyMacro'yu Ara
val = Aralık("D24").Değer
Aralık("B27").Değer = val
Eğer son
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu konu çok ilginç ve ben ilgileniyorum ama nerede bulacağımı bilmiyorum çok şükür bu konuyu siz açtınız umarım herkes bana yardımcı olur http://run-3.online
Bu yorum sitedeki moderatör tarafından en aza indirildi
Excel 2002 (XP): "Dosya" seçilerek ve "Shift" tuşuna basılarak bir çalışma kitabı açılırsa, o sayfadaki makroları devre dışı bırakır, sorun şu ki "Araçlar > Makro > Makrolar..." seçeneğini seçersem makroyu çalıştırabilirim neyse nasıl çözülür?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Selam Roger,
Kodu Excel 2002(XP)'de test etmedik. Neden Microsoft Office'in daha yeni sürümünü kullanmıyorsunuz? İşiniz için daha kolay olacaktır.
Bu yorum sitedeki moderatör tarafından en aza indirildi
2010'da da aynı sonuç.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Neden sadece daha yeni bir sürüm kullanmıyorsunuz, daha kolay olacak
https://games.lol/racing/
Bu yorum sitedeki moderatör tarafından en aza indirildi
Teşekkürler, ancak birkaç makro çalıştırmak için tıklamak için birkaç hücreye ne dersiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Aşağıdaki VBA kodunu deneyin.

Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Varyant Olarak Dim xRgArr
Varyant Olarak Dim xFunArr
Tamsayı olarak xFNum Dim
xStr'yi Dize Olarak Kıs
Aralık olarak Dim xRg
xRgArr = Array("A1", "D1", "C1") 'Makroyu tetiklemek için kullanılan hücreler
xFunArr = Array("Kod adı1", "Kod adı2", "Kod adı3") 'Karşılık gelen kod adları
Selection.Count = 1 ise
xFNum = 0 için UBound(xRgArr) için
xRg = ActiveSheet.Range(xRgArr(xFNum)) ayarla
Kesişmiyorsa (Hedef, xRg) O Zaman Hiçbir Şey Değildir
xStr = xFunArr(xFNum)
Application.Run xStr
Eğer son
Sonraki
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu kod için teşekkürler. Başkalarıyla birleştirilmiş bir hücreye tıklayarak bunun çalışmasını sağlamak mümkün müdür?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba M.Symonds,
Bu makaledeki kod size bir iyilik yapabilir: https://www.extendoffice.com/documents/excel/4354-excel-click-on-cell-to-run-macro.html
Yorumun için teşekkür ederim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
merhaba, bir yapıştırma makrosu çalıştırmak için bu kodu kullanmaya çalışıyordum ama makroyu düzgün bir şekilde nasıl yapıştıracağımı bulamıyorum.

işte benim orijinal Marco'm

Alt Yapıştır()
'
' makro yapıştır
'

'
Range ( "B34"). Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
Yanlış, NoHTMLFormatting:=Doğru
End Sub


herhangi bir yardım takdir
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, ilginç konunuz için teşekkür ederiz. Örneğin, Sayfa4'de D1'e tıklayıp Sayfa2!F3'te Makro sonucunu görmek istersem.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Artık çalışmıyor.
Worksheet_SelectionChange varsayılan olarak mevcut değil. Yani bir makroyu tetiklemek için bunu kullanamazsınız.

Kullanabileceğiniz tek gömülü alt öğeye "Çalışma Kitabı" açılır listesinde başvurulur, bu nedenle...

Yapabileceğiniz en yakın şey Workbook_SheetBeforeDoubleClick kullanmaktır. Ancak Düzenleme moduna girecek (hala önemli değil).
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba CodeKiller.Worksheet_SelectionChange yalnızca Sheet(Code) düzenleyicisinde bulunur. Sayfa sekmesine sağ tıklayın ve Sayfa(Kod) düzenleyicisini etkinleştirmek için Kodu Görüntüle'ye tıklayın.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Makronun yalnızca çalışma sayfasında çalıştığını vurgulamak önemlidir.
Normal görsel temel düzenleyiciyi kullanan bizler, genellikle makroları mevcut çalışma sayfasından başka yerlerde saklıyoruz.
Bu kodların hiçbiri bu durumda çalışmayacaktır.
Bu kodu çok daha basit buluyorum ve benim için çok iyi çalışıyor: 

Özel Alt Worksheet_SelectionChange(Excel.Range Olarak Değer Hedefine Göre)
Kesişmiyorsa(Aralık("d1"), Hedef) O Zaman Hiçbir Şey Değildir
aa'yı ara
Eğer son
End Sub
Sub aa() ' kodunuzu buraya yazın
Aralık("D1").Seçin
Selection.Copy
Aralık("F1").Seç
ActiveSheet.PasteEnd Alt
John Wells
jnw.wells@gmail.com
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba John Wells, Paylaşım için teşekkürler.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunun birleştirilmiş hücrelerde çalışmasını isteyenler için en hızlı ve en kirli yol 2. Satırı şu şekilde güncellemektir:
Seçenek Açık

Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Selection.Count > 0 ise
Kesişmiyorsa(Hedef, Aralık("D4")) O Zaman Hiçbir Şey Değildir
MyMacro'yu Ara
Eğer son
Eğer son
End SubSelection.Count, kalan makro yürütülmeden önce bir seçim yapılıp yapılmadığını belirlemek için kullanılıyor. Seçiminiz birleştirilmiş dört hücreden oluşuyorsa, Selection.Count 4'e eşit olur ve kalan kod hiçbir zaman yürütülmez. Ayrıca 2. satırı birleştirilmiş tam hücre sayısıyla değiştirebilirsiniz, ancak bu soruna neden olur. ek hücreleri birleştir.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Görkemli! Grazie, una vita che sognavo di poterlo ücreti, 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 seçeneği açık altrimente ci viene detto che il riferimento al
çalışma sayfası non è univoco. Mi spiego meglio kanıtlamaları su gel ho adattato il codice con il mio esempio;

Seçenek Açıkça
Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
Selection.Count = 1 ise
Kesişmiyorsa(Hedef, Aralık("Y64")) O Zaman Hiçbir Şey Değildir
Aralık("Y65:Y78").Seç
Aralık("Y65").Etkinleştir
Selection.ClearContents
Aralık("Y65").Seç
Eğer son
Kesişmiyorsa(Hedef, Aralık("A33")) O Zaman Hiçbir Şey Değildir
Aralık("A33").Seçin
Selection.Copy
ActiveWindow.WindowState = xlMinimize Edildi
Tuşları Gönder "^v"
SendKeys "{GERİ AL}"
Eğer son
Eğer son
End Sub

Grazie ancora è stata un'autentica meraviglia!

Massimo
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu unvanla ilgili hiçbir beklentim yoktu, ama daha çok şaşırdım. Yazar harika bir iş çıkarmış. Gerçekleri okuyup kontrol etmek için birkaç dakika harcadım. Her şey çok açık ve anlaşılır. Bilgi boşluklarınızı dolduran gönderileri seviyorum. Bu bir çeşit.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,

Encuentro la manera de hacer lo que necesito yok. Espero de veras beni bekliyor.
Necesito que se lance una MACRO al hacer clic en una celda, pero no sé en qué celda va a ser, no lo puedo karşılaştırmalı con (si se ha seleccionado la celda A3, por ejemplo, que se lance la acción) porque por funcio fichero, las celdas se van a mover de sitio (se han podido insertar, mas o menos filas encima). Necesitaría poder saber qué celda es la que se ha seleccionado.
Hangi güç kaynağına sahipsin?
Şimdiden çok teşekkür ederiz.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba hola,
Hücre adresi sabittir. Taşıyabileceğiniz tek şey hücrenin değeridir.
VBA kodunda belirttiğiniz hücre yine belirtilen VBA kodunu tetikleyen hücredir.
Buraya henüz hiç yorum yapılmamış
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır