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

كيف تحسب أرقام الصفحات لملفات Pdf في Excel؟

إذا كان هناك عدة ملفات Pdf في مجلد معين ، فأنت تريد الآن عرض جميع أسماء الملفات هذه في ورقة عمل ، والحصول على أرقام الصفحات لكل ملف. كيف يمكنك التعامل مع هذه الوظيفة في Excel بسرعة وسهولة؟

احسب أرقام الصفحات لملفات Pdf من مجلد في ورقة العمل برمز VBA


احسب أرقام الصفحات لملفات Pdf من مجلد في ورقة العمل برمز VBA

قد يكون رمز VBA التالي يمكن أن يساعدك في عرض جميع أسماء ملفات Pdf وأرقام كل صفحة في ورقة عمل ، يرجى القيام بذلك على النحو التالي:

1. افتح ورقة عمل حيث تريد الحصول على ملفات Pdf وأرقام الصفحات.

2. اضغط باستمرار على ALT + F11 مفاتيح ، ويفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

3. انقر إدراج > وحدة، ولصق الماكرو التالي في ملف وحدة نافذة او شباك.

رمز VBA: سرد جميع أسماء ملفات Pdf وأرقام الصفحات في ورقة العمل:

Sub Test()
    Dim I As Long
    Dim xRg As Range
    Dim xStr As String
    Dim xFd As FileDialog
    Dim xFdItem As Variant
    Dim xFileName As String
    Dim xFileNum As Long
    Dim RegExp As Object
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    If xFd.Show = -1 Then
        xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
        xFileName = Dir(xFdItem & "*.pdf", vbDirectory)
        Set xRg = Range("A1")
        Range("A:B").ClearContents
        Range("A1:B1").Font.Bold = True
        xRg = "File Name"
        xRg.Offset(0, 1) = "Pages"
        I = 2
        xStr = ""
        Do While xFileName <> ""
            Cells(I, 1) = xFileName
            Set RegExp = CreateObject("VBscript.RegExp")
            RegExp.Global = True
            RegExp.Pattern = "/Type\s*/Page[^s]"
            xFileNum = FreeFile
            Open (xFdItem & xFileName) For Binary As #xFileNum
                xStr = Space(LOF(xFileNum))
                Get #xFileNum, , xStr
            Close #xFileNum
            Cells(I, 2) = RegExp.Execute(xStr).Count
            I = I + 1
            xFileName = Dir
        Loop
        Columns("A:B").AutoFit
    End If
End Sub

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

عدد الصفحات pdf 1

5. ثم انقر فوق OK ، يتم سرد جميع أسماء ملفات Pdf وأرقام الصفحات في ورقة العمل الحالية ، انظر لقطة الشاشة:

عدد الصفحات pdf 2


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

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٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (71)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يعمل بشكل رائع! شكرا جزيلا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لنشر هذه الرسالة المفيدة لك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا ، كود ممتاز مفيد جدا بالنسبة لي
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا يعمل بشكل صحيح ، بالنسبة لبعض ملفات PDF ، بالنسبة لبعض ملفات PDF ، فإنه يظهر 0 وللبعض أرقام الصفحات غير الصحيحة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا فواز
يعمل الرمز بشكل جيد في برنامج Excel الخاص بي ، ما هو إصدار Excel الذي تستخدمه؟
أو يمكنك إرسال مشكلتك التفصيلية أو ملفات pdf إلى بريدي الإلكتروني: skyyang @extendoffice. com.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا سكاييانغ ،

عندي نفس مشكلة فواز. أستخدم MS Office Professional Plus 2013.

شكرا لمساعدتكم!

مع أطيب التحيات
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يحدث نفس الشيء هنا حيث تعود صفحات pdf نفسها إلى الصفر ، يرجى من شخص ما شرح ذلك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، Venkatesh G
يعمل الرمز بشكل جيد في برنامج Excel الخاص بي ، يرجى إرسال ملفات pdf إلى بريدي الإلكتروني: yy@addin99.com.
حتى نتمكن من التحقق من مكان المشكلة ، شكرًا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تحياتي


Hay algún problema con el programa، yo estoy usando la versión 2019 de Office، y las páginas parece que las va contando de mal las primeras 9 páginas acumuladas me sale cero، en la novena página acumulada me sale 10.

¿تفضلوا بي puedes ayudar con ese غير مريح؟

مقدما شكرا جزيلا لك.

أت.

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

هناك مشكلة في البرنامج ، أنا أستخدم الإصدار 2019 من Office ، ويبدو أن الصفحات تحسب بشكل سيئ أول 9 صفحات متراكمة أحصل على صفر ، في الصفحة التاسعة المتراكمة أحصل على 10.

هل يمكنك مساعدتي في هذا الإزعاج؟

مسبقا شكرا جزيلا لك.

أت.

بيدرو
تم تصغير هذا التعليق بواسطة المشرف على الموقع
الكود هو بنية جيدة لكيفية القيام بهذا النوع من الأشياء ولكن هذا التعبير العادي سيعطي نتائج غير موثوقة للعديد من ملفات PDF. لن يعمل التعبير العادي الذي يتم البحث عنه (/ Type \ s * / Page [^ s]) في ملفات pdf الآمنة (سيكون العدد صفرًا). تختلف أيضًا أدوات وإصدارات ملفات PDF في كيفية تمييزها للصفحات. قد يكون دقيقًا إذا كنت تعلم أن جميع ملفات PDF الخاصة بك يتم إنشاؤها باستخدام نفس البنية (الإصدار والأدوات).
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا جزيلاً على إجابتك ، لقد قمت بحل المشكلة عن طريق حفظ الملفات كـ "ملف PDF محسن"
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يتفق 100٪ مع Pedro ، لقد كنت أواجه نفس مشكلة Rob حيث كانت بعض صفحات PDF خاطئة. ولكن إذا تأكدت من حفظ جميع الملفات كـ "Optimized PDF" في المجلد ، فسيتم تصحيح جميع الصفحات. لقد نجح هذا بالنسبة لي في أكثر من 100 ملف PDF منفصل. يمكنك أيضًا التحسين بشكل كبير باستخدام Acrobat Pro. كود رائع بشكل عام ، يعمل مباشرة خارج الصندوق إذا صح التعبير.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ماذا لو كنت أرغب في المرور عبر المجلدات الفرعية أيضًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا براشانت
للحصول على عدد جميع ملفات PDF من المجلد والمجلدات الفرعية ، يرجى تطبيق الكود أدناه:

الاختبار الفرعي ()
أنا خافت وطويلة
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFd كملف الحوار
خافت xFdItem كمتغير
خافت xFileName كسلسلة
خافت xFileNum وطول
خافت RegExp ككائن
قم بتعيين xFd = Application.FileDialog (msoFileDialogFolderPicker)
إذا كان xFd.Show = -1 ثم
xFdItem = xFd.SelectedItems (1) & Application.PathSeparator
تعيين xRg = النطاق ("A1")
المدى ("أ: ب") محتويات واضحة
النطاق ("A1: B1"). Font.Bold = True
xRg = "اسم الملف"
xRg.Offset (0، 1) = "الصفحات"
أنا = 2
استدعاء SunTest (xFdItem، I)
إنهاء حالة
نهاية الفرعية

Sub SunTest (xFdItem كمتغير ، أنا طويل)
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFd كملف الحوار
خافت xFileName كسلسلة
خافت xFileNum وطول
خافت RegExp ككائن
خافت xF ككائن
خافت xSF ككائن
خافت xFso ككائن
xFileName = Dir (xFdItem & "* .pdf" ، vbDirectory)
xStr = ""
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
تعيين RegExp = CreateObject ("VBscript.RegExp")
RegExp.Global = صحيح
RegExp.Pattern = "/ النوع \ s * / الصفحة [^ s]"
xFileNum = ملف مجاني
افتح (xFdItem & xFileName) للثنائي كـ #xFileNum
xStr = مسافة (LOF (xFileNum))
احصل على #xFileNum،، xStr
أغلق #xFileNum
الخلايا (I، 2) = RegExp.Execute (xStr)
أنا = أنا + 1
xFileName = دير
أنشوطة
الأعمدة ("أ: ب"). احتواء تلقائي
تعيين xFso = CreateObject ("Scripting.FileSystemObject")
تعيين xF = xFso.GetFolder (xFdItem)
لكل xSF في xF
استدعاء SunTest (xSF.Path & "\"، I)
التالى
نهاية الفرعية

من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كود المجلد الفرعي الخاص بك يعمل بشكل جيد! شكرًا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا رائع شكرا لك أود تشغيل المجلدات الفرعية أيضًا. أين / كيف يمكنني إضافة هذه الأوامر الإضافية في الكود أعلاه؟ كيف سيبدو كل شيء؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل يمكنك مساعدتي في الحصول على منشئ الملف وأبعاده؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إنه رائع حقًا ، لكن أسماء المجلدات الفرعية لا تأتي في عمود منفصل يحتوي على أسماء ملفات PDF وعدد الصفحات. هل يمكنك المساعدة في هذا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رائع!!!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
على الرحب والسعة. سعيد لأنه يساعد. أي أسئلة، لا تتردد في الاتصال بنا. أتمنى لك يوماً عظيماً.
مع خالص الشكر والتقدير،
ماندي
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ماندي ،
أحصل على خطأ وقت التشغيل '5': استدعاء أو وسيطة إجراء غير صالح
ينتقل التصحيح إلى هذا السطر: xStr = Space (LOF (xFileNum))
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أعمل ولكني أتلقى خطأ ويظهر تصحيح الأخطاء xStr = Space (LOF (xFileNum)) باعتبارها المشكلة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا.
وبالمثل ، هل يمكنك حساب وتصنيف صفحات A3 و A4؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا هو الكود الذي وجدته في مكان ما على الشبكة ، فهو ليس بالشكل الأمثل مثل طريقتك:
الخيار صريح
PDFDoc العام مثل AcroPDDoc ، صفحة PDF ككائن ، A3 & ، A4 &

الرئيسية من الباطن()
Dim fso كـ FileSystemObject ، fld كمجلد ، fil As File ، s $ ، i & ، Arr ()
تعيين fso = New FileSystemObject
تعيين PDFDoc = جديد AcroPDDoc
تعيين fld = fso.GetFolder (ThisWorkbook.Path)
ReDim Arr (1 To 1000، 1 To 3)
لكل فيل في الملفات
s = اسم الملف
If Right (s، 4) = ".pdf" ثم
CountPagesPDF (ThisWorkbook.Path & "\" & s)
أنا = أنا + 1
آر (أنا ، 1) = ث
آر (ط ، 2) = A3
آر (ط ، 3) = A4
إنهاء حالة
التالى
النطاق ("A2: C" & Cells.Rows.Count). مسح
المدى ("A2: C" & (i + 1)) = Arr
تعيين PDFPage = لا شيء
تعيين PDFDoc = لا شيء
تعيين fso = لا شيء
نهاية الفرعية

Sub CountPagesPDF (FullFileName $)
خافت i &، n &، x، y
A3 = 0
A4 = 0
PDFDoc.Open (FullFileName)
n = PDFDoc.GetNumPages
بالنسبة إلى i = 0 إلى n - 1
تعيين PDFPage = PDFDoc.AcquirePage (i)
x = PDFPage.GetSize (). x
y = PDFPage.GetSize (). ذ
إذا كانت x + y> 1500 ، فإن A3 = A3 + 1 عدا ذلك A4 = A4 + 1
التالى
وثيقة PDF
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
وف! شكرًا جزيلاً على المشاركة ، رمز VBA هذا قاتل !! إنه يعمل بشكل لا تشوبه شائبة مع Excel O365
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رائع. تعمل المجلدات الفرعية بشكل رائع. يمكنك مشاركة كيفية إضافة "مسار الملف" و "حجم الملف" أيضًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا دافني
لحل مشكلتك ، يرجى تطبيق الكود أدناه ، يرجى المحاولة ، آمل أن يساعدك!

الاختبار الفرعي ()
أنا خافت وطويلة
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFd كملف الحوار
خافت xFdItem كمتغير
خافت xFileName كسلسلة
خافت xFileNum وطول
خافت RegExp ككائن
قم بتعيين xFd = Application.FileDialog (msoFileDialogFolderPicker)
إذا كان xFd.Show = -1 ثم
xFdItem = xFd.SelectedItems (1) & Application.PathSeparator
تعيين xRg = النطاق ("A1")
المدى ("أ: ب") محتويات واضحة
النطاق ("A1: B1"). Font.Bold = True
xRg = "اسم الملف"
xRg.Offset (0، 1) = "الصفحات"
xRg.Offset (0 ، 2) = "المسار"
xRg.Offset (0 ، 3) = "الحجم (ب)"
أنا = 2
استدعاء SunTest (xFdItem، I)
إنهاء حالة
نهاية الفرعية

Sub SunTest (xFdItem كمتغير ، أنا طويل)
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFd كملف الحوار
خافت xFileName كسلسلة
خافت xFileNum وطول
خافت RegExp ككائن
خافت xF ككائن
خافت xSF ككائن
خافت xFso ككائن
xFileName = Dir (xFdItem & "* .pdf" ، vbDirectory)
xStr = ""
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
تعيين RegExp = CreateObject ("VBscript.RegExp")
RegExp.Global = صحيح
RegExp.Pattern = "/ النوع \ s * / الصفحة [^ s]"
xFileNum = ملف مجاني
افتح (xFdItem & xFileName) للثنائي كـ #xFileNum
xStr = مسافة (LOF (xFileNum))
احصل على #xFileNum،، xStr
أغلق #xFileNum
الخلايا (I، 2) = RegExp.Execute (xStr)
الخلايا (I ، 3) = xFdItem & xFileName
الخلايا (I ، 4) = FileLen (xFdItem & xFileName)
أنا = أنا + 1
xFileName = دير
أنشوطة
الأعمدة ("أ: ب"). احتواء تلقائي
تعيين xFso = CreateObject ("Scripting.FileSystemObject")
تعيين xF = xFso.GetFolder (xFdItem)
لكل xSF في xF
استدعاء SunTest (xSF.Path & "\"، I)
التالى
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا شيء عظيم جدا. شكرًا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا سكاييانغ ،
آسف لصدم وظيفة قديمة.
شكرًا لك على الرمز أعلاه ، فهو يساعدني كثيرًا!
هل يمكنك ، حسب النوع الكافي ، مشاركة كيفية إضافة "تاريخ إنشاء الملف" أيضًا حيث يكون التنسيق هو التاريخ فقط ، دون تضمين الوقت ، DD / MMM / YYYY؟
بغض النظر عن المكان الذي أبحث فيه ، لا يمكنني تعديل التعليمات البرمجية الخاصة بك للقيام بذلك بشكل صحيح بنفسي ..

شكرا لكم مقدما!

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

هل هناك طريقة أيضًا لإضافة رقم صفحة المستندات وأيضًا أحصل على خطأ وهذه هي الرسالة:
xStr = مسافة (LOF (xFileNum))


شكرا جزيلا لك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كود رائع! لا أستطيع الحصول عليه للعمل في مجلدات فرعية. يمكن لأي شخص أن يساعدني مناشدات؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
voce conseguiu achar uma maneira de funcionar em subpastas؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا فلافيو
للحصول على عدد جميع ملفات PDF من المجلد والمجلدات الفرعية ، يرجى تطبيق الكود أدناه:

Sub Test()
Dim I As Long
Dim xRg As Range
Dim xStr As String
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Dim xFileNum As Long
Dim RegExp As Object
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
Set xRg = Range("A1")
Range("A:B").ClearContents
Range("A1:B1").Font.Bold = True
xRg = "File Name"
xRg.Offset(0, 1) = "Pages"
I = 2
Call SunTest(xFdItem, I)
End If
End Sub

Sub SunTest(xFdItem As Variant, I As Long)
Dim xRg As Range
Dim xStr As String
Dim xFd As FileDialog
Dim xFileName As String
Dim xFileNum As Long
Dim RegExp As Object
Dim xF As Object
Dim xSF As Object
Dim xFso As Object
xFileName = Dir(xFdItem & "*.pdf", vbDirectory)
xStr = ""
Do While xFileName <> ""
Cells(I, 1) = xFileName
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "/Type\s*/Page[^s]"
xFileNum = FreeFile
Open (xFdItem & xFileName) For Binary As #xFileNum
xStr = Space(LOF(xFileNum))
Get #xFileNum, , xStr
Close #xFileNum
Cells(I, 2) = RegExp.Execute(xStr).Count
I = I + 1
xFileName = Dir
Loop
Columns("A:B").AutoFit
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xF = xFso.GetFolder(xFdItem)
For Each xSF In xF.SubFolders
Call SunTest(xSF.Path & "\", I)
Next
End Sub


من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
سيم funcionou! muito obrigado

Alguns documentos .pdf estao sendo analisados ​​com 0 paginas implretamente. صابريا لي dizer o porque؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا فلافيو
يمكنك تحميل ملف PDF الخاص بك هنا ، حتى نتمكن من التحقق من المشكلة.
شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Opa، super top، consegue adicionar para aparecer o tamanho do arquivo، na terceira coluna؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا يا SrdosPDF
قد يكون رمز VBA التالي مفيدًا لك ، يرجى تجربته:
Sub Test()
Dim I As Long
Dim xRg As Range
Dim xStr As String
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Dim xFileNum As Long
Dim RegExp As Object
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
Set xRg = Range("A1")
Range("A:B").ClearContents
Range("A1:B1").Font.Bold = True
xRg = "File Name"
xRg.Offset(0, 1) = "Pages"
xRg.Offset(0, 2) = "Size(b)"
I = 2
Call SunTest(xFdItem, I)
End If
End Sub

Sub SunTest(xFdItem As Variant, I As Long)
Dim xRg As Range
Dim xStr As String
Dim xFd As FileDialog
Dim xFileName As String
Dim xFileNum As Long
Dim RegExp As Object
Dim xF As Object
Dim xSF As Object
Dim xFso As Object
xFileName = Dir(xFdItem & "*.pdf", vbDirectory)
xStr = ""
Do While xFileName <> ""
Cells(I, 1) = xFileName
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "/Type\s*/Page[^s]"
xFileNum = FreeFile
Open (xFdItem & xFileName) For Binary As #xFileNum
xStr = Space(LOF(xFileNum))
Get #xFileNum, , xStr
Close #xFileNum
Cells(I, 2) = RegExp.Execute(xStr).Count
Cells(I, 3) = FileLen(xFdItem & xFileName)
I = I + 1
xFileName = Dir
Loop
Columns("A:B").AutoFit
Set xFso = CreateObject("Scripting.FileSystemObject")
Set xF = xFso.GetFolder(xFdItem)
For Each xSF In xF.SubFolders
Call SunTest(xSF.Path & "\", I)
Next
End Sub

نأمل أن يكون هذا يمكن أن تساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، يعمل بشكل رائع ، شكرًا لك على مشاركة هذا. سؤال واحد ، هل من الممكن إضافة هذا حساب ملفات Microsoft Word .doc و. docx أيضًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، sroczeto ،
لحساب عدد الصفحات من .doc و. docx بالإضافة إلى ملفات PDF ، يرجى تطبيق الكود التالي:
الاختبار الفرعي ()
أنا خافت وطويلة
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFd كملف الحوار
خافت xFdItem كمتغير
خافت xFileName كسلسلة
خافت xFileNum وطول
خافت RegExp ككائن
خافت xWdApp
خافت xWd
قم بتعيين xFd = Application.FileDialog (msoFileDialogFolderPicker)
إذا كان xFd.Show = -1 ثم
Application.ScreenUpdating = خطأ
xFdItem = xFd.SelectedItems (1) & Application.PathSeparator
xFileName = Dir (xFdItem & "* .pdf" ، vbDirectory)
تعيين xRg = النطاق ("A1")
المدى ("أ: ب") محتويات واضحة
النطاق ("A1: B1"). Font.Bold = True
xRg = "اسم الملف"
xRg.Offset (0، 1) = "الصفحات"
أنا = 2
xStr = ""
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
تعيين RegExp = CreateObject ("VBscript.RegExp")
RegExp.Global = صحيح
RegExp.Pattern = "/ النوع \ s * / الصفحة [^ s]"
xFileNum = ملف مجاني
افتح (xFdItem & xFileName) للثنائي كـ #xFileNum
xStr = مسافة (LOF (xFileNum))
احصل على #xFileNum،، xStr
أغلق #xFileNum
الخلايا (I، 2) = RegExp.Execute (xStr)
أنا = أنا + 1
xFileName = دير
أنشوطة
xFileName = Dir (xFdItem & "* .docx" ، vbDirectory)
تعيين xWdApp = CreateObject ("Word.Application")
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
xFileNum = ملف مجاني
تعيين xWd = GetObject (xFdItem & xFileName)
الخلايا (I، 2) = xWd.ActiveWindow.Panes (1) .Pages.Count
xWd إغلاق خطأ
أنا = أنا + 1
xFileName = دير
أنشوطة
الأعمدة ("أ: ب"). احتواء تلقائي
إنهاء حالة
Application.ScreenUpdating = ترو
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بفضل الزميل! إنه يعمل على pdf و docx ، لكن ليس على ملفات doc. وسؤال واحد آخر ، هل يمكنك إضافة ذلك في المجلدات الفرعية أيضًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لقد فتحت ملف pdf الذي تم ذكر مسار واسمه في عمود خلية Excel "C9". أريد فقط الحصول على رقم الصفحة الأخيرة في Excel vba ، الرجاء مساعدتي
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ، هذا حقا يعمل بشكل جيد ، شكرا لك. هل من الممكن الحصول على حجم الصفحة الأولى في عمود جديد؟ المثال 8.5 × 11 ، 11 × 17 إلخ.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هذا يعمل جيدًا حقًا ، شكرًا !، هل من الممكن الحصول على حجم الصفحة للصفحة الأولى من مستند PDF؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
هل من الممكن أيضًا الحصول على أبعاد الصفحات ومنشئ ملف pdf في هذا الماكرو؟
هل يمكن لأحد أن يساعدني في هذا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل هناك طريقة لتضمين .doc لقد لاحظت أنه يعمل مع .docx وليس .doc
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا جون ، لحساب صفحات doc و. docx بالإضافة إلى ملفات PDF ، يرجى تطبيق الكود التالي: إحصائيات فرعية صفحة ()
أنا خافت وطويلة
خافت xRg كمدى
خافت xStr كسلسلة
خافت xFd كملف الحوار
خافت xFdItem كمتغير
خافت xFileName كسلسلة
خافت xFileNum وطول
خافت RegExp ككائن
خافت xWdApp
خافت xWd
قم بتعيين xFd = Application.FileDialog (msoFileDialogFolderPicker)
إذا كان xFd.Show = -1 ثم
Application.ScreenUpdating = خطأ
xFdItem = xFd.SelectedItems (1) & Application.PathSeparator
xFileName = Dir (xFdItem & "* .pdf" ، vbDirectory)
تعيين xRg = النطاق ("A1")
المدى ("أ: ب") محتويات واضحة
النطاق ("A1: B1"). Font.Bold = True
xRg = "اسم الملف"
xRg.Offset (0، 1) = "الصفحات"
أنا = 2
xStr = ""
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
تعيين RegExp = CreateObject ("VBscript.RegExp")
RegExp.Global = صحيح
RegExp.Pattern = "/ النوع \ s * / الصفحة [^ s]"
xFileNum = ملف مجاني
افتح (xFdItem & xFileName) للثنائي كـ #xFileNum
xStr = مسافة (LOF (xFileNum))
احصل على #xFileNum،، xStr
أغلق #xFileNum
الخلايا (I، 2) = RegExp.Execute (xStr)
أنا = أنا + 1
xFileName = دير
أنشوطة
xFileName = Dir (xFdItem & "* .docx" ، vbDirectory)
تعيين xWdApp = CreateObject ("Word.Application")
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
xFileNum = ملف مجاني
تعيين xWd = GetObject (xFdItem & xFileName)
الخلايا (I، 2) = xWd.ActiveWindow.Panes (1) .Pages.Count
xWd إغلاق خطأ
أنا = أنا + 1
xFileName = دير
أنشوطة
xFileName = Dir (xFdItem & "* .doc" ، vbDirectory)
تعيين xWdApp = CreateObject ("Word.Application")
القيام أثناء xFileName <> ""
الخلايا (I ، 1) = xFileName
xFileNum = ملف مجاني
تعيين xWd = GetObject (xFdItem & xFileName)
الخلايا (I، 2) = xWd.ActiveWindow.Panes (1) .Pages.Count
xWd إغلاق خطأ
أنا = أنا + 1
xFileName = دير
أنشوطة
الأعمدة ("أ: ب"). احتواء تلقائي
إنهاء حالة
Application.ScreenUpdating = ترو
End Sub يرجى المحاولة ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا هذا يساعد كثيرا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لدي مجلد به عدة مجلدات فرعية. كيف يمكنني تحديد مسار المجلد الأصلي دون تحديده يدويًا. ثم أيضا إخراج اسم المجلد الفرعي. شكرا لك مقدما 
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لقد قمت بتحرير الشفرة التي تمت إزالتها من XFD وقمت بتعيين مسار الملف كـ xfditem
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Skyyang ، أود أولاً أن أشكرك على هذا العمل الرائع الذي تقوم به ، والوقت الذي تستغرقه ... أبحث لفترة من الوقت عن رمز VBA: لديّ ورقة Excelsheet في العمود "J" قائمة من ملفات pdf و xlsx و elm الموجودة في دليل غرفة البيانات (مع دليل فرعي) اسم الملف كامل مع النوع X: \ Data_Room \ Sub_directory_1 \ file.pdf يجب أن يملأ الرمز العمود "I" بعدد صفحات كل ملف .pdf وملفات xls. (لا حاجة إلى ملفات أخرى ، يجب أن تظل cels فارغة) هل يمكنك مساعدتي؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل من الممكن أن يتم توسيع هذا لسحب رقم بيتس من الصفحة الأولى لكل ملف pdf؟
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

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