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

كيف يتم تشغيل ماكرو أو تشغيله بالنقر فوق خلية معينة في Excel؟

أثناء العمل مع Microsoft Excel ، قد تعرف كيفية تشغيل ماكرو معين باستخدام زر الأمر. ولكن هل تعرف كيفية تشغيل ماكرو بمجرد النقر فوق خلية معينة في ورقة العمل؟ ستوضح لك هذه المقالة طريقة تشغيل ماكرو بالنقر فوق خلية معينة بالتفصيل.

قم بتشغيل ماكرو أو تشغيله بالنقر فوق خلية معينة برمز VBA


قم بتشغيل ماكرو أو تشغيله بالنقر فوق خلية معينة برمز VBA

يمكن أن تساعدك التعليمات البرمجية لـ VBA التالية في تشغيل ماكرو بالنقر فوق خلية معينة في Excel. الرجاء القيام بما يلي.

1. في ورقة العمل التي تحتوي على الخلية التي تحتاج إلى النقر فوقها لتشغيل ماكرو ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة ، ثم انقر فوق عرض الرمز من قائمة السياق.

2. في ال ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، انسخ والصق البرنامج النصي VBA أدناه في نافذة التعليمات البرمجية.

التعليمات البرمجية لـ VBA: قم بتشغيل ماكرو أو تشغيله بالنقر فوق خلية معينة

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

ملاحظة:

1. في الكود ، D4 هي الخلية التي ستضغط عليها لتشغيل ماكرو ؛

2. يرجى استبدال الاسم الرمزي ماي ماكرو باستخدام الماكرو الذي ستقوم بتشغيله في ورقة العمل. انظر لقطة الشاشة:

3. اضغط على قديم + Q مفاتيح في نفس الوقت لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

من الآن فصاعدًا ، عند النقر فوق الخلية D4 في ورقة العمل الحالية ، سيتم تشغيل الماكرو المحدد على الفور.


مقالات ذات صلة:


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (37)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا يمكن تشغيل أو تشغيل ماكرو بالنقر فوق خلية محددة برمز VBA ، للحصول على هذا العمل. لقد جربتها بطرق مختلفة ، لكنها لم تنجح أبدًا في تحقيق ما وعدت به.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لن يعمل هذا الرمز إلا إذا قمت بوضعه في وحدة "ThisWorkbook". لا يعمل على وحدة عامة.
اسم المصنف> كائنات Excel Microsft> ThisWorkbook.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
سيعمل هذا الرمز على وحدة رمز ورقة العمل. تحتاج إلى النقر بزر الماوس الأيمن فوق علامة تبويب الورقة والنقر فوق "عرض الرمز". سيؤدي هذا إلى فتح وحدة التعليمات البرمجية لورقة العمل هذه فقط. ثم الصق الكود المذكور.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا كنت ترغب في الحصول على وحدات ماكرو متعددة ، فإن الخلايا تقوم بتشغيل وحدات ماكرو مختلفة في نفس الصفحة - فهل هذا ممكن؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي سيمون ،
يمكن أن يساعدك البرنامج النصي VBA أدناه في تشغيل وحدات ماكرو مختلفة بالنقر فوق الخلايا الموجودة في نفس الصفحة.

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
إذا كان Target.Count = 1 ثم
إذا لم يكن متقاطعًا (الهدف ، النطاق ("D4")) لا يعد شيئًا ، فاتصل بـ MyMacro1
إذا لم يكن متقاطعًا (الهدف ، النطاق ("D8")) لا يعد شيئًا ، فاتصل بـ MyMacro2
إذا لم يكن متقاطعًا (الهدف ، النطاق ("D10")) لا يعد شيئًا ، فاتصل بـ MyMacro3
إنهاء حالة
نهاية الفرعية

الرجاء إضافة سطر "إذا لم يتقاطع (الهدف ، النطاق (" D10 ")) لا شيء ، ثم اتصل بـ MyMacro" لتشغيل المزيد من الماكرو عن طريق النقر فوق الخلية. وقم بتغيير اسم الخلية والماكرو في الكود بناءً على احتياجاتك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إنه لا يعمل على برنامج Excel الخاص بي. الكود هو الصحيح؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كاميلا ،
نأسف للإزعاج. جرب كود فبا أدناه.

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
خافت xRgArr كمتغير
خافت xFunArr كمتغير
خافت xFNum كعدد صحيح
خافت xStr كسلسلة
خافت xRg كمدى
xRgArr = خلايا صفيف ("A1" ، "D1" ، "C1") "تُستخدم لتشغيل الماكرو
xFunArr = Array ("Code name1" ، "Code name2" ، "Code name3") "أسماء الرموز المقابلة
إذا كان Selection.Count = 1 ثم
بالنسبة إلى xFNum = 0 إلى UBound (xRgArr)
تعيين xRg = ActiveSheet.Range (xRgArr (xFNum))
إذا لم يتقاطع (الهدف ، xRg) فلا شيء إذن
xStr = xFunArr (xFNum)
Application.Run xStr
إنهاء حالة
التالى
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لقد نجح هذا بشكل مثالي وسيوفر لي الكثير من الوقت - شكرًا لك على مشاركة معرفتك - أقدر ذلك كثيرًا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا سعيد بخدمتك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عظيم. تعمل بشكل جيد ... شكرا ....
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا.

لدي هذا العمل بشكل جيد ، ولكن أود إضافة شرط لتشغيل الماكرو. أريد فقط تشغيل الماكرو إذا كانت الخلية الموجودة بجانب الخلية التي أنقر عليها تحتوي على قيمة معينة.
على سبيل المثال ، عندما أقوم بالنقر فوق الخلية F6 ، أريد تشغيل الماكرو إذا كانت الخلية E6 تحتوي على "x" ، ولكن إذا كانت الخلية E6 فارغة ، فلا يجب تشغيل الماكرو.
نأمل أن يكون منطقيا.
شكر

هذا هو الكود الأصلي الخاص بي بدون شرط:


الخيار صريح

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
إذا كان Selection.Count = 1 ثم
إذا لم يتقاطع (الهدف ، النطاق ("F6: F18")) لا شيء إذن
تاريخ المكالمة
إنهاء حالة
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
يمكن أن تساعدك التعليمات البرمجية VBA التالية في حل المشكلة. يرجى المحاولة وشكرا لتعليقك.

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
خافت xRg كمدى
إذا لم يتقاطع (الهدف ، النطاق ("F6: F18")) لا شيء إذن
قم بتعيين xRg = ActiveSheet.Cells (Target.Row ، Target.Column - 1)
إذا (xRg.Value = "") أو (xRg.Value <> "X") ثم اخرج من Sub
اتصل datepick
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا ولكن ماذا عن الخلايا المدمجة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ألبير ،
لا يعمل الرمز للخلايا المدمجة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أستخدم OpenOffice وقمت بالنقر بزر الماوس الأيمن فوق علامة تبويب الورقة والأحداث المحددة ثم حدد هذا الماكرو من MyMacros .. ومع ذلك حصلت على خطأ في السطر التالي: If Selection.Count = 1 ثم >>> "خطأ وقت التشغيل الأساسي ، متغير غير محدد...
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا جيمس،
الكود يعمل فقط مع Microsoft Office Excel. شكرا لك على تعليقك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
الكود الخاص بي في هذا الماكرو هو:


تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)

خافت فال كسلسلة
REM val = Range ("A2"). القيمة

إذا كان Selection.Count = 1 ثم
إذا لم يتقاطع (الهدف ، النطاق ("D24")) لا شيء إذن
استدعاء REM MyMacro
val = Range ("D24"). القيمة
المدى ("B27"). القيمة = val
إنهاء حالة
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا الموضوع ممتع للغاية وأنا مهتم ولكن لا أعرف من أين أجده ، والحمد لله أنشأت هذا الموضوع ، أتمنى أن يساعدني الجميع http://run-3.online
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Excel 2002 (XP): إذا تم فتح مصنف عن طريق تحديد "ملف" والضغط على "Shift" فإنه يؤدي إلى تعطيل وحدات الماكرو في تلك الورقة ، والمشكلة هي أنه إذا قمت بتحديد "أدوات> ماكرو> وحدات ماكرو ..." يمكنني تشغيل الماكرو على أي حال ، كيف تحل؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا روجر،
لم نختبر الكود في Excel 2002 (XP). لماذا لا تستخدم الإصدار الأحدث من Microsoft Office؟ سيكون أكثر سهولة لعملك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
نفس النتيجة في عام 2010.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لماذا لا تستخدم فقط بعض الإصدارات الأحدث سيكون الأمر أكثر سهولة
https://games.lol/racing/
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا ، ولكن ماذا عن عدة خلايا للنقر لتشغيل العديد من وحدات الماكرو.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
جرب كود فبا أدناه.

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
خافت xRgArr كمتغير
خافت xFunArr كمتغير
خافت xFNum كعدد صحيح
خافت xStr كسلسلة
خافت xRg كمدى
xRgArr = خلايا صفيف ("A1" ، "D1" ، "C1") "تُستخدم لتشغيل الماكرو
xFunArr = Array ("Code name1" ، "Code name2" ، "Code name3") "أسماء الرموز المقابلة
إذا كان Selection.Count = 1 ثم
بالنسبة إلى xFNum = 0 إلى UBound (xRgArr)
تعيين xRg = ActiveSheet.Range (xRgArr (xFNum))
إذا لم يتقاطع (الهدف ، xRg) فلا شيء إذن
xStr = xFunArr (xFNum)
Application.Run xStr
إنهاء حالة
التالى
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا على هذا الرمز. هل من الممكن الحصول على هذا للعمل من خلال النقر على خلية مدمجة مع الآخرين؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا M.Symonds ،
يمكن أن يقدم لك الكود الموجود في هذه المقالة معروفًا: https://www.extendoffice.com/documents/excel/4354-excel-click-on-cell-to-run-macro.html
شكرا لتعليقك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، كنت أحاول استخدام هذا الرمز لتشغيل ماكرو لصق ولكن لا يمكنني معرفة كيفية لصق الماكرو بشكل صحيح.

ها هو الأصلي ماركو

لصق ثانوي ()
'
لصق ماكرو
'

'
النطاق ("B34"). حدد
تنسيق ActiveSheet.PasteSpecial: = "HTML" ، الرابط: = خطأ ، DisplayAsIcon: = _
خطأ ، NoHTMLFormatting: = صحيح
نهاية الفرعية


نقدر أي مساعدة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ، شكرا لك على موضوعك المثير للاهتمام. ماذا لو أردت على سبيل المثال النقر فوق D4 في الورقة 1 ورؤية نتيجة الماكرو في الورقة 2! F3.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا يعمل بعد الآن.
Worksheet_SelectionChange غير موجود بشكل افتراضي. بمعنى أنه لا يمكنك استخدام ذلك لتشغيل ماكرو.

تتم الإشارة إلى الجزء الفرعي المضمن الوحيد الذي يمكنك استخدامه في القائمة المنسدلة "المصنف" ، لذلك ...

أقرب شيء يمكنك القيام به هو استخدام Workbook_SheetBeforeDoubleClick. ولكن سيتم الدخول في وضع التحرير (لا يزال ليس مشكلة كبيرة).
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا CodeKiller.Worksheet_SelectionChange موجود فقط في محرر الورقة (الرمز). انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وانقر فوق عرض الرمز لتنشيط محرر الورقة (الرمز).
تم تصغير هذا التعليق بواسطة المشرف على الموقع
من المهم التأكيد على أن الماكرو يعمل فقط في ورقة العمل.
غالبًا ما ينتهي الأمر بمن يستخدمون المحرر المرئي الأساسي العادي بتخزين وحدات الماكرو في أماكن أخرى غير ورقة العمل الحالية.
لن تعمل أي من هذه الرموز في هذه الحالة.
أجد أن هذا الرمز أبسط بكثير وهو يعمل جيدًا بالنسبة لي: 

تغيير ورقة العمل الفرعية الخاصة (حسب الهدف مثل Excel.Range)
إذا لم يتقاطع (النطاق ("d1") ، الهدف) لا شيء إذن
استدعاء aa
إنهاء حالة
نهاية الفرعية
Sub aa () 'ضع الكود الخاص بك هنا
النطاق ("D1"). حدد
الاختيار
النطاق ("F1"). حدد
ActiveSheet.PasteEnd Sub
جون ويلز
jnw.wells@gmail.com
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا جون ويلز ، شكرًا لك على المشاركة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بالنسبة لأولئك الذين يريدون أن يعمل هذا مع الخلايا المدمجة ، فإن الطريقة الأسرع والأقذر هي تحديث السطر 2 على النحو التالي:
خيار صريح

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
إذا كان Selection.Count> 0 ثم
إذا لم يتقاطع (الهدف ، النطاق ("D4")) لا شيء إذن
اتصل بـ MyMacro
إنهاء حالة
إنهاء حالة
يتم استخدام End SubSelection.Count لتحديد ما إذا كان قد تم إجراء تحديد قبل تنفيذ الماكرو المتبقي. إذا كان اختيارك يتكون من أربع خلايا تم دمجها ، فسيكون Selection.Count مساويًا لـ 4 ، ولن يتم تنفيذ الكود المتبقي أبدًا. يمكنك أيضًا تغيير السطر 2 إلى عدد الخلايا التي تم دمجها بالضبط ، ولكن هذا سوف يسبب مشاكل إذا كنت دمج خلايا إضافية.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
جرانديوسو! Grazie، Age una vita che sognavo di poterlo fare، se può essere utile a qualcuno avendo mustità di eseguire più codici su più celle per
aumentare il numero di opzioni basta aggiungere le nuove istruzionisempre sotto la stessa خيار altrimente صريح ci viene detto che il riferimento al
ورقة عمل non è univoco. Mi spiego Meglio Evidentemente su come ho adattato il codice con il mio esempio؛

الخيار صريح
تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
إذا كان Selection.Count = 1 ثم
إذا لم يتقاطع (الهدف ، النطاق ("Y64")) فلا شيء إذن
النطاق ("Y65: Y78"). حدد
نطاق ("Y65"). تنشيط
اختيار محتويات واضحة
النطاق ("Y65"). حدد
إنهاء حالة
إذا لم يتقاطع (الهدف ، النطاق ("A33")) لا شيء إذن
النطاق ("A33"). حدد
الاختيار
ActiveWindow.WindowState = xlMinimized
إرسال المفاتيح "^ v"
إرسال المفاتيح "{BACKSPACE}"
إنهاء حالة
إنهاء حالة
نهاية الفرعية

Grazie ancora è stata un'autentica meraviglia!

ماسيمو
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لم يكن لدي أي توقعات بشأن هذا اللقب ، لكن كلما اندهشت أكثر. فعلت الكاتبة بعمل عظيم. قضيت بضع دقائق في القراءة والتحقق من الحقائق. كل شيء واضح جدا ومفهوم. أنا أحب المشاركات التي تملأ الفجوات المعرفية الخاصة بك. هذا واحد من النوع.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

No encuentro la manera de hacer lo que necesito. Espero de veras que me podáis ayudar.
Necesito que se lance una MACRO al hacer clic en una celda، pero no sé en qué celda va a ser، no lo puedo Comparar con (si se ha seleccionado la celda A3، por ejemplo، que se lance la acción) porque por funcionalidades del fichero، las celdas se van a mover de sitio (se han podido insertar، mas o menos filas encima). Necesitaría poder sabre qué celda es la que se ha seleccionado.
Hay alguna manera de poder hacer eso؟
شكرا جزيلا لك مقدما.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Hola ،
عنوان الخلية ثابت. كل ما يمكنك نقله هو قيمة الخلية.
لا تزال الخلية التي حددتها في التعليمات البرمجية لـ VBA هي الخلية التي تقوم بتشغيل رمز VBA المحدد.
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL