لن يتم نشر عنوان بريدك الإلكتروني. الحقول المطلوبة معلمة *

عذرًا - لم تفكر في الكيفية التي سيبدو بها الرمز في التعليق المقدم. حذف إذا أردت وسأعيد النشر بتنسيق أفضل.

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

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

تم تغيير مهمة تتطلب استعلامات متعددة ، وإنشاء رسائل بريد إلكتروني متعددة يدويًا بنقرة زر واحدة.

أنا بالتأكيد أحب ذلك ، قديم أم لا.

لقد وجدت شيئًا على هذا المنوال منذ بعض الوقت وقمت بتطوير تطبيق يستند إلى Excel سمح لي بتتبع عدد "الإعجابات" على مجموعة من صفحات Facebook المحددة. لقد وسعت ذلك منذ ذلك الحين لاستخدام VBA للحصول على جميع أنواع المعلومات على مواقع الويب المختلفة.

مشكلتي في الوقت الحالي هي أنني أواجه بعض المشاكل مع IE وأميل إلى استخدام Chrome.

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

instagram viewer

كمثال ، كود Facebook الخاص بي هو:

Sub GetLikes () Dim IeApp كـ InternetExplorerDim sURL As StringDim IeDoc As ObjectDim i As Longdebugmode = False If debugmode ثم فتح "c: VBAoutputvbaOutput.txt "للملحق باسم # 1" إنشاء مثيل جديد من IE Set IeApp = New InternetExplorer "جعله مرئيًا - لا تعمل بعض الأشياء إلا إنه مرئي IeApp. مرئي = debugmode لكل مولودية في التحديد حدد الصفحة لفتح sURL = mc 'ابحث عن العمود chkDate = تاريخ المجموعة c = النطاق ("2: 2"). (chkDate) إذا كان c لا شيء ، فإن myCol = Range ("2: 2"). ابحث عن (What: = "*"، searchdirection: = xl Previous). خلايا العمود + 1 (1، myCol) = خلايا "الحالة" (1 ، myCol + 1) = خلايا "الإعجابات" (1 ، myCol + 2) = خلايا "الروابط" (2 ، myCol) = خلايا chkDate (2 ، myCol + 1) = خلايا chkDate (2 ، myCol + 2) = chkDate Else myCol = ج. نهاية العمود إذا 'mc. الإزاحة (0 ، 1) .Value = التاريخ isDown = mc. الإزاحة (0 ، 3) .Value If isDown = "Page Down" ثم pageDown = "Page Down" numlikes = "" numlinks = "" doNothing = True Else 'انتقل إلى الصفحة IeApp. تصفح sURL 'إيقاف الماكرو مؤقتًا باستخدام حلقة حتى يتم تحميل الصفحة بالكامل Do Loop حتى IeApp. ReadyState = READYSTATE_COMPLETE 'تخزين كائن المستند Set IeDoc = IeApp. المستند عند الخطأ استئناف الرموز التالية = IeDoc. Body.innertext If Err. رقم 0 ثم خطأ. امسح GoTo skiploop End If On Error GoTo 0 If debugmode ثم اكتب # 1، code & vbCrLf & vbCrLf numlinks = IeDoc. الروابط. الطول = IeApp. تصحيح LocationName. طباعة الرموز pageDown = True isPageStats = InStr (أكواد ، "placePageStatsNumber") isGroup = InStr (أكواد ، "uiButtonText> انضمام") isOldGroup = InStr (أكواد ، "تمت جدولة هذه المجموعة لتكون مؤرشف ") isOpenGroup = InStr (أكواد ،" Open Group ") isEvent = InStr (أكواد ،" حدث عام ") isClosedGroup = InStr (أكواد ،" مجموعة مغلقة ") IsOpen = InStr (أكواد ، أ) isCommonInterest = InStr (أكواد ، "اهتمام مشترك") isMovie = InStr (أكواد ، "Movieu003c") isNumberGiant = InStr (أكواد ، "uiNumberGiant") notFound = InStr (أكواد ، "الصفحة التي طلبتها لم يتم العثور عليها") profileUnavailable = InStr (a، "Profile Unavailable") titlePos = InStr (codes، "") If titlePos> 0 ثم titlePos2 = InStr (titlePos، code، "") إذا كان titlePos> 0 ثم titleName = Mid (أكواد ، titlePos + 7 ، titlePos2 - titlePos - 7) إذا كان isPageStats> 0 ثم isPageStats = isPageStats + 23 pos2 = InStr (isPageStats ، أكواد ، "") pageDown = "Current" likeTxt = Mid (أكواد ، isPageStats ، pos2 - isPageStats) ElseIf isGroup> 0 ثم likeTxt = "n.k." pageDown = "Group" ElseIf isOldGroup> 0 ثم likeTxt = "n.k." pageDown = "المجموعة القديمة" ElseIf isOpenGroup> 0 ثم pos1 = InStr (isOpenGroup ، الرموز ، "الأعضاء (") + 9 pos2 = InStr (pos1 ، الرموز ، ")") numMembers = Mid (الرموز ، pos1 ، pos2 - pos1) pageDown = "Open Group" likeTxt = LTrim ( عدد الأعضاء) ElseIf isEvent> 0 ثم pos1 = InStr (1 ، أكواد ، "مركز المساعدة") pos2 = InStr (pos1 + 1 ، أكواد ، "مشاهدة الكل") + 9 pos3 = InStr (pos2 ، أكواد ، "حضور") - 1 إذا pos3 = -1 ثم pos1 = InStr (أكواد ، "pagelet_event_guests_going") + 28 pos2 = InStr (pos1 ، أكواد ، "> Going (") + 8 pos3 = InStr (pos2 ، أكواد ، ")") numAttending = Mid (رموز ، pos2 ، pos3 - pos2) آخر numAttending = الوسط (الرموز ، pos2 ، pos3 - pos2) 'pos2 - pos1) End إذا likeTxt = LTrim (numAttending) pageDown = "Event" ElseIf isClosedGroup> 0 ثم pageDown = "Closed Group" pos1 = InStr (isClosedGroup، أكواد ، "أعضاء" + 9 pos2 = InStr (pos1 ، أكواد ، ")") likeTxt = Mid (أكواد ، pos1 ، pos2 - pos1) ElseIf isNumberGiant> 0 ثم pos2 = InStr (isNumberGiant ، أكواد ، ">") pos3 = InStr (pos2، أكواد ، "") likeTxt = Mid (أكواد ، pos2 + 1 ، pos3 - pos2 - 1) pageDown = "Current" ElseIf isCommonInterest> 0 ثم pageDown = "Common Interest" likeTxt = "n.k." ElseIf IsOpen> 0 و a "Facebook" ثم pageDown = "Current" likeTxt = "n.k." ElseIf isMovie> 0 ثم pageDown = "Movie" likeTxt = "n.k." End If If pageDown = True ثم pageDown = "Page Down" likeTxt = "n.a." numlinks = "n.a." End If End If mc. الإزاحة (0 ، myCol - 2) .Value = pageDown mc. الإزاحة (0 ، myCol - 1) .Value = likeTxt mc. الإزاحة (0 ، myCol - 0) = numlinksskiploop: pageDown = "" likeTxt = "" numlinks = "" التالي mc'Clean up IeApp. قم بإنهاء تعيين IeApp = لا شيء إذا كان debugmode ثم أغلق # 1 End Sub

إنه مكتظ ولكنه يقوم بالمهمة.

أعتقد أن كل ما أبحث عنه هو كيفية استخراج .Body.innertext من مثيل Google Chrome.

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

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

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

بالنسبة للتطبيقات مثل التي وصفتها أعلاه ، فهي سهلة الاستخدام. من المحتمل ألا أمضي وقتًا كافيًا في إتقان أي لغة برمجة "أكثر جدية" ، ولكن يمكنني تسجيل وحدات الماكرو ومقتطفات من خلال VBA جيدًا بما فيه الكفاية. استغرق تدقيق الدقة أقل من يوم واحد للتطوير والاختبار والتنفيذ بشكل كامل. لم أكن بحاجة إلى سحب موارد المطورين من المهام الموكلة إليهم (وأشك بجدية في أن أي من مطوري Java أو PL-SQL كان بإمكانهم القيام بذلك بشكل أسرع مما فعلت باستخدام الفانيليا Excel و VBA.