دعونا نلقي نظرة أولاً على اجتياز الملفات في VB واستخدام التعبيرات العادية لإكمال وظيفة النسخ
انسخ "Project 1" و"Project 1" والملفات الأخرى في الملف المصدر ضمن المسار "E:/my/Report/Achievements" إلى الملف الهدف. وإليك كيفية القيام بذلك.
Private Sub Option1_Click()Dim myStr As String' عن طريق إدخال الرقم التسلسلي للعنصر في الخلية، يتم تحديده بواسطة طريقة InputBox المستخدمة حاليًا، ويمكن استخدام هذه الطريقة أيضًا. اختر واحدا من الاثنين. 'myStr = Sheets("Sheet1").Range("D21").نص ''''''''''''''''''''''''''' '' ''' ''''''''''''''''''''' 'أدخل الرقم التسلسلي للمشروع من خلال InputBox Start '''''''''''' ''''' ''''''''''''''''''''''''''''' '' myStr = InputBox("الرجاء إدخال الرقم التسلسلي للمشروع. يجب أن يكون الرقم التسلسلي عبارة عن أرقام عربية. يجب أن يكون التنسيق صحيحًا! التنسيق مثل " & Chr(34) & "2 items" & Chr(34)) '''' ''''''' '''''''''''''''''''''''''''''''' ' 'أدخل الرقم التسلسلي للمشروع من خلال InputBoxEnd '''''''''''''''''''''''''''''''' '''''''' ''''' Dim endNum As Integer 'تعترض الدالة MID الرقم النهائي endNum = InStrRev(myStr, "item") myStr = Mid(myStr, 1, endNum - 1) 'MsgBox myStr Dim CChinesStr As String CChineseStr = CChinese(myStr ) 'تحويل الأرقام العربية إلى أحرف صينية'MsgBox CChineseStr '''''''''''''''''''''''' '''''''' '''''''''''''' ''اجتياز الملفات الموجودة أسفل المسار ابدأ ''''''''''''''''''' '''''''' ''''''''''''''''''''''''''' خافت fso ككائن مجلد خافت ككائن مجلد فرعي خافت ككائن ملف خافت ككائن Dim fileNameArray As String Dim basePath As String basePath = "E:/my/report/achievements" Set fso = CreateObject("scripting.filesystemobject") 'إنشاء مجلد مجموعة كائن FSO = fso.getfolder(basePath & "/الملف المصدر") لكل ملف في المجلد. الملفات "اجتياز الملفات ضمن المجلد الجذر" fileNameArray = fileNameArray & file & "|" Dim mRegExp As Object 'كائن التعبير العادي Dim mMatches As Object' مطابقة كائن مجموعة السلسلة Dim mMatch As Object 'Match string Set mRegExp = CreateObject("Vbscript.Regexp") With mRegExp .Global = True 'صحيح يعني مطابقة الكل، خطأ يعني مطابقة المطابقة الأولى فقط item.IgnoreCase = True 'صحيح يعني غير حساس لحالة الأحرف، وخطأ يعني حساس لحالة الأحرف'.Pattern = "([0-9])?[.]([0-9])+|([0-9])+" 'مطابقة نمط الحرف'.Pattern = "(([0-9]+)? )|(([المنتجات الصينية 六七八九十]+)?)) العنصر(([المنتجات الصينية الكيماوية]+)?)|([0-9])؟" 'مطابقة نمط الحرف'.النمط = "(العنصر(234)+)|(((234)?|(مائتان وأربعة وثلاثون)؟)العنصر(234)?)" 'تطابق نمط الأحرف'.النمط = "(((" & "+)" ?)|(([المنتجات الصينية 六七八九十]+)?)) العنصر(([المنتجات الصينية 四五六七八九十]+)?)|([0-9 ])? " 'تطابق نمط الحرف.النمط = "(item(" & CChineseStr & ")+)|((" & myStr & ")?|(" & CChineseStr & ")?)item(" & myStr & ")?)" 'مطابقة نمط الحرف'Set mMatches = .Execute(Sheets("Report").Range("D21").Text) 'تنفيذ بحث عادي وإرجاع مجموعة من كافة النتائج المطابقة. إذا لم يتم العثور عليها، فستكون فارغة Set mMatches = .Execute(file) 'قم بتنفيذ بحث عادي وإرجاع مجموعة كافة النتائج المطابقة. إذا لم يتم العثور عليها، فستكون فارغة لكل mMatch في mMatches 'SumValueInText = SumValueInText + CDbl(mMatch.Value) 'SumValueInText = SumValueInText & mMatch. القيمة إذا كانت mMatch .Value <> "" ثم 'fileNameArray = fileNameArray & mMatch.Value & "_" fso.copyfile basePath & "/source file/" & mMatch.Value & ".*"، basePath & "/target file" & myStr 'Copy OperationEnd If Next End With 'MsgBox fileNameArray Set mRegExp = Nothing Set mMatches = Nothing Next Set fso = لا شيء تعيين المجلد = لا شيء '''''''''''''''''''''''''' ''''''''' '''''''' 'اجتياز الملفات الموجودة أسفل المسار'''''''''''''''''''''''' '''''''''' '''''''' MsgBox "اكتملت العملية"End Sub'تحويل الأرقام العربية إلى أحرف صينية وظيفة خاصة CChinese(StrEng As String) As String'التحقق من البياناتإذا لم تكن رقمية(StrEng) ثمIf Trim(StrEng) <> “” ثم MsgBox “رقم غير صالح” CCchinese = “”الخروج من الوظيفة إذا قمت بتعريف المتغير Dim intLen كعدد صحيح، intCounter كـ IntegerDim strCh كسلسلة، strTempCh كـ StringDim strSeqCh1 كسلسلة، strSeqCh2 كـ StringDim strEng2Ch كـ String'strEng2Ch = "صفر واحد اثنان ثلاثة أربعة خمسة أرض سبعة سبعة ثمانية تسعة" strEng2Ch = "صفر واحد اثنان ثلاثة أربعة خمسة ستة سبعة ثمانية وتسعين"'strSeqCh1 = " "strSeqCh1 = "مائة ألف ومائة ومائة ألف ومائة ألف" strSeqCh2 = "تريليون"'تحويل إلى سلسلة تمثل قيمة عددية StrEng = CStr(CDec( StrEng))' سجل طول الرقمintLen = Len(StrEng) )'تحويل إلى الأحرف الصينيةFor intCounter = 1 To intLen'إرجاع الحرف الصيني المطابق للرقم strTempCh = Mid(strEng2Ch, Mid(StrEng, intCounter, 1) + 1, 1)'إذا كانت بتة معينة صفر إذا كانت strTempCh = "صفر" وintLen <> 1 ثم'If الأخير هو أيضًا صفر، أو يظهر الصفر في المواضع الأول والخامس والتاسع والثالث عشر وما إلى ذلك من الأسفل، فلن يتم عرض الحرف الصيني "صفر" إذا كان Mid(StrEng, intCounter + 1, 1) = "0" أو (intLen - intCounter + 1) Mod 4 = 1 ثم strTempCh = ""ElsestrTempCh = strTempCh & Trim(Mid(strSeqCh1, intLen - intCounter + 1, 1))End If'للسلسلة التي تظهر في آخر 1، الأرقام ذات الأرقام 5، 9، 13، وما إلى ذلك. إذا (intLen - intCounter + 1) Mod 4 = 1 ثم'أضف البت "تريليون" strTempCh = strTempCh & Trim(Mid(strSeqCh2, (intLen - intCounter) / 4 + 1, 1))End If' لتكوين تعبير صيني strCh = strCh & Trim(strTempCh)NextCChinese = strChEnd وظيفة
الملحق: دعونا نلقي نظرة على كيفية استخدام VB لإعادة تسمية المجلدات والملفات ونسخها.
الأمر الفرعي الخاصButton1_Click()' قم بتعريف اسم المجلد والمسار Dim FileName، Path As String، EmptySheet As String'Path = "D:/Report" Path = InputBox("يرجى الدخول" & Chr(34) & "Grade" & Chr (34) & "المسار إلى المجلد بتنسيق" & Chr(34) & "D:/grades" & Chr(34))اسم الملف = المسار & "/Last Semester"EmptySheet = Path & "/Semester تهيئة"'MsgBox FileNameIf Dir(FileName, vbDirectory) <> ""ثم'MsgBox "المجلد موجود"'الحصول على وقت النظام الحالي'Dim dd As Date'dd = الآن ' MsgBox Format(dd, “yyyymm”)Dim myTime As StringmyTime = InputBox(“الرجاء إدخال الوقت الحالي بتنسيق” & Chr(34) & "201811" & Chr(34))If myTime = ""thenMsgBox "لا يمكن أن يكون الوقت الحالي فارغًا! وإلا، لا يمكن إعادة تسمية المجلد الحالي"Else:Name FileName As Path & "" & myTimeEnd IfEnd If' تحديد ما إذا كان المجلد موجودإذا Dir(FileName, vbDirectory) = "" ثم'قم بإنشاء المجلد MkDir (اسم الملف)'MsgBox ("تم الإنشاء")، آخر: MsgBox ("المجلد موجود بالفعل")End If'نسخ الجدول الفارغ إلى Set Fso الحالي = CreateObject("Scripting.FileSystemObject")'نسخ المجلد Fso.copyfolder EmptySheet, FileName'Fso.copyfile EmptySheet&"c:*. *"، "d:" 'نسخ الملف'FileSystemObject.copyfolder ورقة فارغة، اسم الملف، 1MsgBox ("العملية ناجحة!")End Sub
تلخيص
ما ورد أعلاه هو الطريقة التي قدمها المحرر لاجتياز الملفات في VB واستخدام التعبيرات العادية لنسخ المجلدات وإعادة تسميتها ونسخها في VB، وآمل أن تكون مفيدة لك، إذا كانت لديك أي أسئلة، فيرجى ترك رسالة لي سيقوم المحرر بالرد على الجميع في الوقت المناسب. أود أيضًا أن أشكر الجميع على دعمكم لموقع Wulin.com!