XL2000: كيفية فرض الرمز ماكرو إلى انتظار إجراء الخارجية

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

اضغط هنا لرابط المقالة باللغة الانجليزية214248
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
في Microsoft Excel، يمكنك استخدام Visual Basic for Applications الماكرو لتشغيل تطبيقات Windows وMS- DOS والإجراءات الأخرى. تستمر التعليمات البرمجية للماكرو في Microsoft Excel لتنفيذ حتى بعد بدء الإجراء الخارجية. يجب كتابة تعليمات برمجية لمعالجة تأخيرات حالة انتظار الإخراج من الإجراء خارج Microsoft Excel.
معلومات أخرى
تقدم Microsoft الأمثلة البرمجية فقط دون أي ضمان التعبير عن أو ضمنية. هذا يتضمن ولكن لم يقتصر على الضمانات الضمنية الخاصة بالتجارة أو الملاءمة لغرض معين. تفترض هذه المقالة تكون مألوفة مع لغة البرمجة التي يتم شرحها مع الأدوات التي يتم استخدامها لإنشاء لتصحيح الإجراءات. يمكن لمهندسي الدعم لدى Microsoft شرح وظيفة إجراء محدد ولكن لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.

إنشاء الوحدة النمطية لـ

قبل استخدام الأمثلة في هذا المقال اتبع الخطوات التالية:
  1. فتح مصنف جديد.
  2. إدراج ورقة وحدة نمطية جديدة. للقيام بذلك، أشر إلى ماكرو ضمن القائمة أدوات ثم انقر فوق محرر Visual Basic. في محرر Visual Basic، انقر فوق وحدة نمطية في القائمة إدراج.
  3. اكتب التعليمات البرمجية للماكرو نموذج في ورقة وحدة نمطية.

مثال 1: إنشاء العلامة

للحصول على تعليمات برمجية لماكرو في المثال 1 للعمل بشكل صحيح, تحتاج إلى جعل التطبيق المخصص الخاص بك إنشاء علامة عند اكتمال تنفيذ. في المثال التالي يجب تطبيق مخصص إنشاء ملف نصي في C:\Flag.txt ليقوم بدور هذه العلامة.
Sub Appacttest()   ' Checks to see if Flag.txt already exists.   FindIt = Dir("C:\Flag.txt")   ' If the file Flag.txt has been found then delete it.   If  Not Len(FindIt) = 0  Then      Kill "C:\Flag.txt"   End If   ' Sets Myapp variable equal to the Shell statement.   Myapp = Shell("C:\Custom.exe", 1)   ' Executes the shell statement.   AppActivate Myapp   ' Checks to see if Flag.txt can be found yet.   FindIt = Dir("C:\Flag.txt")   ' The following While Wend loop will keep Microsoft Excel "suspended"   ' until the custom application is complete. This will occur while the   ' length of the FindIt variable is equal to 0. Microsoft Excel will   ' remain busy until it finds the file Flag.txt, thereby making the length   ' of FindIt > 0 and ending the loop.   ' Check to see if the length of FindIt variable is equal to 0   ' chars.   While Len(FindIt) = 0   ' Continue to check if flag was created yet.   FindIt = Dir("C:\Flag.txt")   Wend   ' Continue with more code if needed.End Sub				

مثال 2: استخدام ملف متوسط لتجنب انتهاك مشاركة

يستخدم هذا المثال ملف متوسطة للسماح الأمر DIR MS-DOS إكمال وإغلاق الإخراج قبل أن يحاول Microsoft Excel فتحها. إذا لم يتم استخدام هذا الأسلوب إنشاء أسلوب Workbooks.Open حدوث انتهاك في مشاركة قبل محاولة فتح الإخراج أثناء فإنه لا يزال يتم كتابة.

بينما يوضح المثال التالي استخدام واحدة من هذا الإجراء, يمكنك تطبيق نفس الأسلوب لأي تطبيق MS-DOS أو Windows بإنشاء ملف إخراج التي يمكن قراءتها من قبل Microsoft Excel.
Sub WaitForOutput()If Len(Dir("c:\output.txt")) > 0 Then Kill "c:\output.txt"If Len(Dir("c:\temp.txt")) > 0 Then Kill "c:\temp.txt"' Test for previous files and delete them.Shell "command.com /c dir c:\windows\*.* > c:\temp.txt"' Run MS-DOS DIR command to pipe the directory of' c:\windows into an intermediate text file, temp.txt.On Error Resume Next' Set error condition to skip to the next line,' for Name statement below.Do Until Len(Dir("c:\output.txt")) > 0' Begin a loop to test for final output file, output.txt.   Name "c:\temp.txt" As "c:\output.txt"   ' Attempt to rename temp.txt to output.txt;   ' will fail until temp.txt is closed   DoEvents   ' Allow for other processes, including the shelled   ' procedure above, to continue in the background Loop   Loop'End the loopWorkbooks.Open ("c:\output.txt")' Open the resulting text file, output.txt, into an Excel worksheet.End Sub				
مراجع
للحصول على مزيد من المعلومات، الرجاء مراجعة المقالات التالية في "قاعدة معارف Microsoft:
كيفية تحديد متى تم تم إنهاء معالجة 32-بت Shelled 129796

كيفية تحديد متى تم تم إنهاء عملية 16-بت Shelled 96844
إيقاف مؤقت العائد إيقاف subprogram الخارجية dos الماكرو استدعاء وحدة التحكم الدفعي البرنامج النصي إيقاف مؤقت تسلسل متسلسلة متزامن غير متزامن

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 214248 - آخر مراجعة: 02/12/2014 05:55:38 - المراجعة: 4.2

Microsoft Excel 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbcode kbdtacode kbinfo kbprogramming KB214248 KbMtar
تعليقات
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)