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

كيفية تشغيل الماكرو عندما تتغير قيمة الخلية في إكسيل؟

عادةً ، في Excel ، يمكننا الضغط على مفتاح F5 أو زر تشغيل لتنفيذ كود فبا. ولكن ، هل حاولت تشغيل رمز الماكرو المحدد عندما تتغير قيمة الخلية؟ في هذه المقالة ، سأقدم بعض الحيل السريعة للتعامل مع هذه الوظيفة في Excel.

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

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


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

لتشغيل رمز ماكرو عن طريق تغيير قيمة الخلية ، يمكن أن تقدم لك تعليمات VBA التالية خدمة ، يرجى القيام بذلك على النحو التالي:

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد تنفيذ الماكرو إذا تغيرت قيمة الخلية ، ثم اختر عرض الرمز من قائمة السياق ، وفتح Microsoft Visual Basic للتطبيقات نافذة ، انسخ والصق الكود التالي في الوحدة النمطية الفارغة:

رمز فبا: تشغيل الماكرو عندما تتغير قيمة الخلية:

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

doc قم بتشغيل الماكرو إذا تغيرت الخلية 1

ملاحظة: في الكود أعلاه ، A1 هي الخلية المحددة التي تريد تشغيل الشفرة بناءً عليها ، ميماكرو هو اسم الماكرو الذي تريد تشغيله. يرجى تغييرها حسب حاجتك.

2. ثم قم بحفظ وإغلاق نافذة التعليمات البرمجية ، الآن ، عند إدخال القيمة أو تغييرها في الخلية A1 ، سيتم تشغيل الرمز المحدد مرة واحدة.


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

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

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد تنفيذ الماكرو إذا تغيرت قيمة الخلية ، ثم اختر عرض الرمز من قائمة السياق ، وفتح Microsoft Visual Basic للتطبيقات نافذة ، انسخ والصق الكود التالي في الوحدة النمطية الفارغة:

رمز فبا: تشغيل ماكرو عندما تتغير أي قيمة خلية في نطاق:

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 قم بتشغيل الماكرو إذا تغيرت الخلية 2

ملاحظة: في الكود أعلاه ، A1: B100 هي الخلايا المحددة التي تريد تشغيل الشفرة بناءً عليها ، ميماكرو هو اسم الماكرو الذي تريد تشغيله. يرجى تغييرها حسب حاجتك.

2. ثم احفظ وأغلق نافذة الكود ، الآن ، عند إدخال أو تغيير القيمة في أي خلية من A1: B100 ، سيتم تنفيذ الكود المحدد مرة واحدة.


قم بإزالة كافة وحدات الماكرو من مصنفات متعددة

كوتولس ل إكسيل's دفعة إزالة كافة وحدات الماكرو يمكن أن تساعدك الأداة المساعدة على إزالة كافة وحدات الماكرو من مصنفات متعددة حسب حاجتك. قم بتنزيل Kutools for Excel والإصدار التجريبي المجاني الآن!

كوتولس ل إكسيل: مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود خلال 30 يومًا. تنزيل وتجربة مجانية الآن!


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

كيفية تشغيل الماكرو تلقائيًا قبل الطباعة في Excel؟

كيفية تشغيل الماكرو بناءً على قيمة الخلية في Excel؟

كيفية تشغيل الماكرو بناءً على القيمة المحددة من القائمة المنسدلة في Excel؟

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

كيف يتم تشغيل الماكرو عند تحديد الورقة من مصنف؟


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

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٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (17)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذه الوحدة لا تعمل بالنسبة لي. تقول عندما تتغير VALUE للخلية فإنها ستنفذ الكود. أجد ما إذا كانت I TYPE في الخلية تعمل ، ولكن إذا تم تغيير قيمة الخلية بواسطة صيغة ، على سبيل المثال Counta ، فلن يتم تنفيذها. هل لديك حل لتنفيذ ماكرو عندما تتغير VALUE من خلال صيغة؟ شكرا واين
تم تصغير هذا التعليق بواسطة المشرف على الموقع
نفس مشكلة واين. أي مساعدة موضع تقدير كبير! شكرا روني
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا يا شباب،

نعم ، لا يتوفر الكود أعلاه إلا عندما تتغير قيمة الخلية يدويًا ، إذا كنت بحاجة إلى تشغيل رمز ماكرو معين تلقائيًا عندما تتغير نتيجة الصيغة مع تغير الخلايا النسبية ، يرجى زيارة هذه المقالة:
https://www.extendoffice.com/documents/excel/4618-excel-vba-run-macro-when-cell-formula-result-changes.html.
من فضلك جربها وأتمنى ردك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إنه لا يعمل ... وأنا أقوم بتغيير قيمة الخلية يدويًا. هل هناك أي تكوين مسبق يجب إعداده؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
اختبر هذا في الإجراء واستخدمه كمعامل


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

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

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

الرجاء المساعدة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا دكتور كارترايت ،
آسف للرد عليك في وقت متأخر جدا.
نعم ، كما قلت ، يجب وضع رمز الماكرو في الوحدة النمطية ، وتحتاج إلى تغيير اسم الرمز إلى اسمك كما هو موضح في لقطة الشاشة التالية:
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، مساء الخير
quisiera sabre el codigo para que se active una macro cuando cambia el valor de una celda de una columna، pero este valor cambia por form، sin que el usuario introduzca ningun valor.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا يا رفاق ، أنا أقوم بحل المشكلة التالية: أريد حذف عنوان موقع ويب عند إدراج رابط في العمود A ووضع هذه القيمة في الخلية ذات الصلة (بجانبه) في العمود B. يبدو أن المشكلة هي أنه بمجرد أن ألصق موقع الويب في العمود A ، يعيد الرمز تشغيل القائمة بأكملها من العمود A2 إلى "الصف الأخير" كما هو محدد في الكود. هل هناك أي طريقة لتعديل العمود B بمجرد تعديل عمود واحد فقط؟ على سبيل المثال ، إذا قمت بلصق ارتباط في العمود A36 ، فسأحصل على عنوان في B36 ، بغض النظر عما إذا كانت الخلية في منتصف النطاق المستخدم أو في أسفله. أرغب في استخدام هذا دون الحاجة إلى إعادة تشغيل مدخلات متعددة كما هي حاليًا ؛ (على سبيل المثال ، الحلقة "من أجل i = 2 إلى الصف الأخير")؟ أيضًا ، أود تغيير ما يلي من الماكرو المعياري ، أي فرعي إلى فرعي خاص يتفاعل مع التغيير (أي وظيفة التقاطع) حيث يكون "الهدف" هو أي خلية من A: نطاق. شكرا جزيلا!


العنوان الفرعي get_title_header ()



خافت wb ككائن

مستند خافت ككائن

خافت sURL كسلسلة

خافت Lastrow As Long

lastrow = Sheet1.Cells (Rows.Count، "A"). End (xlUp) .row



لأني = 2 إلى آخر مرة

تعيين wb = CreateObject ("internetExplorer.Application")

sURL = الخلايا (i ، 1)



wb. التنقل في sURL

wb.Visible = خطأ



بينما wb.Busy

تقوم الدالة DoEvents

وند



وثيقة HTML

تعيين doc = wb.document



الخلايا (i، 2) = doc.Title



عند الخطأ ، انتقل إلى err_clear

الخلايا (i، 3) = doc.GetElementsByTagName ("h1") (0) .innerText

Err_clear:

إذا Err <> 0 ثم

Err.Clear

استئناف بعد ذلك

إنهاء حالة

توقف

Range (Cells (i، 1)، Cells (i، 3)). Columns.AutoFit

أنا القادم



نهاية الفرعية




شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أحاول أتمتة مصنف واحد (BOM) عندما يقوم مصنف آخر (حالة الأجزاء) بإجراء تغييرات. يتم تحديث ملف حالة الأجزاء كل 1 دقيقة. أحتاج إلى معرفة كيفية أتمتة عمود معين عند حدوث هذه التغييرات؟ أيه أفكار
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أستخدم الكود أدناه لإخفاء الأعمدة المختلفة بناءً على التحديد من مربع القائمة المنسدلة الموجود في الخلية C3 ، ولكن بعد إجراء عملية حسابية في أي مكان في ورقة العمل ، تصبح جميع الأعمدة غير متاحة. كيف يمكنني حل هذه المشكلة؟

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

الأعمدة ("D: F"). احتواء تلقائي

Dim Proj1 كسلسلة
Dim Proj2 كسلسلة
Dim Proj3 كسلسلة
Dim Proj4 كسلسلة
Dim Proj5 كسلسلة
Dim Proj6 كسلسلة
Dim Proj7 كسلسلة
Dim Proj8 كسلسلة
Dim Proj9 كسلسلة
Dim Proj10 كسلسلة

Proj1 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A1"). القيمة
Proj2 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A2"). القيمة
Proj3 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A3"). القيمة
Proj4 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A4"). القيمة
Proj5 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A5"). القيمة
Proj6 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A6"). القيمة
Proj7 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A7"). القيمة
Proj8 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A8"). القيمة
Proj9 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A9"). القيمة
Proj10 = ActiveWorkbook.Sheets ("المشاريع"). النطاق ("A10"). القيمة

خافت xRG كمجموعة
خافت xHRow كعدد صحيح
تعيين xRG = Range ("C3")
إذا لم يتقاطع (الهدف ، xRG) فلا شيء إذن

إذا كانت Target.Value = Proj1 ثم
Application.Columns ("E: F"). مخفي = صحيح
Application.Columns ("D"). مخفي = خطأ

ElseIf Target.Value = Proj2 ثم
Range ("D: D، F: F"). EntireColumn.Hidden = True
Application.Columns ("E"). مخفي = خطأ

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

ماذا قد تكون المشكلة؟
لا توجد تعليقات منشورة هنا حتى الآن

تواصل معنا

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