Pertama mari kita lihat melintasi file di VB dan menggunakan ekspresi reguler untuk menyelesaikan fungsi penyalinan
Salin "Proyek 1", "Proyek 1" dan file lain di file sumber di bawah jalur "E:/my/Report/Achievements" ke file target. Inilah cara melakukannya.
Private Sub Option1_Click()Dim myStr As String' Dengan memasukkan nomor seri item ke dalam sel, ditentukan oleh metode InputBox yang saat ini digunakan, dan metode ini juga dapat digunakan. Pilih salah satu dari keduanya. 'myStr = Spreadsheet("Sheet1").Range("D21").Teks ''''''''''''''''''''''''''''' '''' '''''''''''''''''''''' 'Masukkan nomor seri proyek melalui InputBox Start '''''''''''' ''''' ''''''''''''''''''''''''''''''''''' '' myStr = InputBox("Silakan masukkan nomor seri proyek. Nomor seri harus angka Arab. Formatnya harus benar! Formatnya seperti " & Chr(34) & "2 item" & Chr(34)) '''' ''''''' '''''''''''''''''''''''''''''''''''''''''' ' 'Masukkan nomor seri proyek melalui InputBoxEnd ''''''''''''''''''''''''''''''''''''''' '''''''' ''''' Redupkan endNum Sebagai Integer 'Fungsi MID memotong digit akhir endNum = InStrRev(myStr, "item") myStr = Mid(myStr, 1, endNum - 1) 'MsgBox myStr Dim CChinesStr As String CChineseStr = CCinese(myStr ) 'Mengonversi angka Arab ke karakter Cina'MsgBox CChineseStr ''''''''''''''''''''''''''''''''' '''''''' ''''''''''''''' 'Melintasi file di bawah jalur Mulai ''''''''''''''''''' '''''''' ''''''''''''''''''''''''''''' Redupkan fso Sebagai Objek Redupkan folder Sebagai Objek Redupkan subfolder Sebagai Objek Redupkan file Sebagai Objek Redupkan fileNameArray Sebagai String Redupkan basePath As String basePath = "E:/my/report/achievements" Set fso = CreateObject("scripting.filesystemobject") 'Buat objek FSO Set folder = fso.getfolder(basePath & "/source file") Untuk Setiap file Dalam folder.File 'Melintasi file di bawah folder root' fileNameArray = fileNameArray & file & "|" Redupkan mRegExp Sebagai Objek 'Objek ekspresi reguler Redupkan mMatches Sebagai Objek' Cocokkan objek koleksi string Redupkan mMatch Sebagai Objek 'Cocokkan string Set mRegExp = CreateObject("Vbscript.Regexp") Dengan mRegExp .Global = True 'True berarti cocok dengan semua, False berarti hanya cocok dengan Yang pertama cocok item.IgnoreCase = Benar 'Benar berarti tidak peka huruf besar-kecil, Salah berarti peka huruf besar-kecil'.Pattern = "([0-9])?[.]([0-9])+|([0-9])+" 'Cocok dengan pola karakter'.Pattern = "((([0-9]+)? )|(([一二三四五六七八九十]+)?)) item(([一二三四五六七八九十]+)?)|([0-9])?" 'Cocokkan pola karakter'.Pola = "(Item(234)+)|(((234)?|(Dua Ratus Tiga Puluh Empat)?)Item(234)?)" 'Cocokkan pola karakter'.Pattern = "(((" & "+) ?)|(([一二三四五六七八九十]+)?)) item(([一二三四五六七八九十]+)?)|([0-9 ])? " 'Cocokkan pola karakter. Pola = "(item(" & CChineseStr & ")+)|(((" & myStr & ")?|(" & CCchineseStr & ")?)item(" & myStr & ")?)" 'Cocokkan pola karakter'Set mMatches = .Execute(Sheets("Report").Range("D21").Text) 'Jalankan pencarian reguler dan kembalikan satu set semua hasil yang cocok. Jika tidak ditemukan, maka akan kosong Set mMatches = .Execute(file) 'Jalankan pencarian reguler dan kembalikan kumpulan semua hasil yang cocok. Jika tidak ditemukan, itu akan kosong. Untuk Setiap mMatch Dalam mMatches 'SumValueInText = SumValueInText + CDbl(mMatch.Value) 'SumValueInText = SumValueInText & mMatch. Nilai Jika mMatch .Value <> "" Lalu 'fileNameArray = fileNameArray & mMatch.Value & "_" fso.copyfile basePath & "/source file/" & mMatch.Value & ".*", basePath & "/target file" & myStr 'Salin operasiEnd Jika Berikutnya Diakhiri Dengan 'MsgBox fileNameArray Set mRegExp = Tidak Ada Set mMatches = Tidak Ada Set Berikutnya fso = Tidak Ada Set folder = Tidak Ada '''''''''''''''''''''''''''''''''' ''''''''' ''''''''' 'Melintasi file di bawah pathEnd '''''''''''''''''''''''''''''''''' '''''''''' ''''''''' MsgBox "Operasi selesai"Akhir Sub'Konversi angka Arab ke karakter CinaFungsi Pribadi CChinese(StrEng As String) Sebagai String'Verifikasi dataJika Bukan IsNumerik( StrEng) ThenIf Trim(StrEng) <> “” Lalu MsgBox “Nomor tidak valid”CCina = “”Keluar dari FunctionEnd If'define variabel Dim intLen Sebagai Integer, intCounter Sebagai IntegerDim strCh Sebagai String, strTempCh Sebagai StringDim strSeqCh1 Sebagai String, strSeqCh2 Sebagai StringDim strEng2Ch As String'strEng2Ch = "nol satu dua tiga empat lima tanah tujuh tujuh delapan sembilan" strEng2Ch = "nol satu dua tiga empat lima enam tujuh delapan sembilan puluh"'strSeqCh1 = " "strSeqCh1 = "Seratus Ribu Seratus Seratus Ribu Seratus Ribu" strSeqCh2 = "Triliun"'Konversikan ke string yang mewakili nilai numerik StrEng = CStr(CDec( StrEng))'Catat panjang bilanganintLen = Len(StrEng )'Konversi ke karakter CinaUntuk intCounter = 1 Ke intLen'Mengembalikan karakter Cina yang sesuai dengan nomor strTempCh = Mid(strEng2Ch, Mid(StrEng, intCounter, 1) + 1, 1)'Jika bit tertentu adalah nolIf strTempCh = "zero" Dan intLen <> 1 Then'If the yang terakhir juga nol, atau nol muncul di posisi 1, 5, 9, 13, dst. dari bawah, maka karakter Cina "nol" tidak akan ditampilkan. Jika Mid(StrEng, intCounter + 1, 1) = “0” Atau (intLen - intCounter + 1) Mod 4 = 1 Kemudian strTempCh = “”ElsestrTempCh = strTempCh & Trim(Mid(strSeqCh1, intLen - intCounter + 1, 1))End If'untuk angka pertama, terakhir dengan digit 5, 9, 13, dst. If (intLen - intCounter + 1) Mod 4 = 1 Kemudian'Tambahkan bit "Trillion" strTempCh = strTempCh & Trim(Mid(strSeqCh2, (intLen - intCounter) / 4 + 1, 1))End If' untuk membentuk ekspresi Cina strCh = strCh & Trim(strTempCh)NextCChinese = strChEnd Fungsi
Tambahan: Mari kita lihat cara menggunakan VB untuk mengganti nama dan menyalin folder dan file.
Perintah Sub PribadiButton1_Click()'Deklarasikan nama folder dan jalur Redupkan Nama File, Jalur Sebagai String, Lembar Kosong Sebagai String'Path = "D:/Laporan" Path = InputBox("Silakan masukkan" & Chr(34) & "Grade" & Chr ( 34) & “Jalur ke folder, dalam format” & Chr(34) & “D:/grades” & Chr(34))NamaFile = Jalur & "/Semester Terakhir"EmptySheet = Path & "/Inisialisasi Semester"'MsgBox FileNameIf Dir(FileName, vbDirectory) <> ""Then'MsgBox "Folder ada"'Dapatkan waktu sistem saat ini'Dim dd As Date'dd = Sekarang ' MsgBox Format(dd, “yyyymm”) Redupkan myTime As StringmyTime = InputBox(“Silakan masukkan waktu saat ini dalam format” & Chr(34) & "201811" & Chr(34))If myTime = "" ThenMsgBox "Waktu saat ini tidak boleh kosong! Jika tidak, folder saat ini tidak dapat diganti namanya"Else:Name FileName As Path & "" & myTimeEnd IfEnd If' Tentukan apakah folder tersebut adaJika Dir(NamaFile, vbDirectory) = "" Lalu'Buat folder MkDir (NamaFile)'MsgBox ("Dibuat")Lain: MsgBox ("Folder sudah ada")End If'Salin tabel kosong ke set saat ini Fso = CreateObject("Scripting.FileSystemObject")'Salin folder Fso.copyfolderEmptySheet, NamaFile'Fso.copyfileEmptySheet&"c:*. *", "d:" 'Salin file'FileSystemObject.copyfolder BlankSheet, Nama File, 1MsgBox ("Operasi berhasil!")Akhir Sub
Meringkaskan
Di atas adalah metode yang diperkenalkan oleh editor untuk melintasi file di VB dan menggunakan ekspresi reguler untuk menyalin dan mengganti nama serta menyalin folder di VB editor akan membalas semua orang tepat waktu. Saya juga ingin mengucapkan terima kasih kepada semua orang atas dukungan Anda terhadap situs web Wulin.com!