Schauen wir uns zunächst das Durchlaufen von Dateien in VB und die Verwendung regulärer Ausdrücke an, um die Kopierfunktion abzuschließen
Kopieren Sie „Projekt 1“, „Projekt 1“ und andere Dateien in der Quelldatei unter dem Pfad „E:/my/Report/Achievements“ in die Zieldatei. Hier erfahren Sie, wie es geht.
Private Sub Option1_Click()Dim myStr As String' Durch Eingabe der Seriennummer des Artikels in die Zelle wird diese durch die aktuell verwendete InputBox-Methode angegeben, und diese Methode kann ebenfalls verwendet werden. Wählen Sie eine der beiden. 'myStr = Sheets("Sheet1").Range("D21").Text '''''''''''''''''''''''''' '''' '''''''''''''''''''''' 'Geben Sie die Projektseriennummer über die InputBox Start ein '''''''''''' ''''' '''''''''''''''''''''''''''''''''' '''' myStr = InputBox("Bitte geben Sie die Seriennummer des Projekts ein. Die Seriennummer muss aus arabischen Ziffern bestehen. Das Format muss korrekt sein! Das Format ist beispielsweise " & Chr(34) & "2 items" & Chr(34)) '''' '''''''' '''''''''''''''''''''''''''''''''''' ' 'Geben Sie die Seriennummer des Projekts über InputBoxEnd ein '''''''''''''''''''''''''''''''''''''' '''''''' ''''' Dim endNum As Integer 'MID-Funktion fängt die Endziffer ab endNum = InStrRev(myStr, "item") myStr = Mid(myStr, 1, endNum - 1) 'MsgBox myStr Dim CChinesStr As String CChineseStr = CChinese(myStr ) 'Arabische Ziffern in chinesische Zeichen umwandeln'MsgBox CChineseStr '''''''''''''''''''''''''''' '''''''' ''''''''''''''' 'Durchlaufe die Dateien unter dem Pfad Start ''''''''''''''''' '''''''' '''''''''''''''''''''''''''' FSO als Objekt dimmen Ordner als Objekt dimmen Unterordner als Objekt dimmen Datei als Objekt dimmen FileNameArray als String dimmen BasePath als String dimmen basePath = "E:/my/report/achievements" Set fso = CreateObject("scripting.filesystemobject") 'FSO-Objekt erstellen Set Folder = fso.getfolder(basePath & "/source file") Für jede Datei in Ordner.Dateien 'Dateien im Stammordner durchsuchen' fileNameArray = fileNameArray & file & "|" Dim mRegExp As Object 'Reguläres Ausdrucksobjekt Dim mMatches As Object 'Match-String-Sammlungsobjekt Dim mMatch As Object 'Match-String Set mRegExp = CreateObject("Vbscript.Regexp") With mRegExp .Global = True 'True bedeutet Übereinstimmung mit allen, False bedeutet Übereinstimmung nur mit der ersten Übereinstimmung item.IgnoreCase = True 'True bedeutet, dass die Groß-/Kleinschreibung nicht beachtet wird, False bedeutet, dass die Groß-/Kleinschreibung beachtet wird'.Pattern = "([0-9])?[.]([0-9])+|([0-9])+" 'Match-Zeichenmuster'.Pattern = "((([0-9]+)? )|(([一二三四五六七八九十]+)?)) item(([一二三四五六七八九十]+)?)|([0-9])?" 'Match-Zeichenmuster'.Pattern = "(Item(234)+)|(((234)?|(Two Hundred and Thirty-four)?)Item(234)?)" 'Match Character Pattern'.Pattern = "(((" & "+) ?)|(([一二三四五六七八九十]+)?)) item(([一二三四五六七八九十]+)?)|([0-9 ])? " 'Übereinstimmendes Zeichenmuster.Pattern = "(item(" & CChineseStr & ")+)|(((" & myStr & ")?|(" & CChineseStr & ")?)item(" & myStr & ")?)" 'Match-Zeichenmuster'Set mMatches = .Execute(Sheets("Report").Range("D21").Text) 'Führen Sie eine reguläre Suche aus und geben Sie einen Satz aller übereinstimmenden Ergebnisse zurück. Wenn sie nicht gefunden werden, ist sie leer. Set mMatches = .Execute(file) 'Führen Sie die reguläre Suche aus und geben Sie die Menge aller übereinstimmenden Ergebnisse zurück. Wenn sie nicht gefunden wird, ist sie leer. Für jeden mMatches 'SumValueInText = SumValueInText + CDbl(mMatch.Value) 'SumValueInText = SumValueInText & mMatch. Wert Wenn mMatch .Value <> "" Then '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 = Nichts Ordner festlegen = Nichts '''''''''''''''''''''''''''''' ''''''''' '''''''''' 'Durchlaufen Sie die Dateien unter dem PfadEnd '''''''''''''''''''''''''''''' '''''''''' '''''''' MsgBox "Vorgang abgeschlossen"End Sub'Konvertieren Sie arabische Ziffern in chinesische ZeichenPrivate Function CChinese(StrEng As String) As String'Verify dataIf Not IsNumeric( StrEng) ThenIf Trim(StrEng) <> „“ Then MsgBox „Ungültige Zahl“CChinese = „“Exit FunctionEnd If'define Variable Dim intLen As Integer, intCounter As IntegerDim strCh As String, strTempCh As StringDim strSeqCh1 As String, strSeqCh2 As StringDim strEng2Ch As String'strEng2Ch = "null eins zwei drei vier fünf land sieben sieben acht neun" strEng2Ch = "null eins zwei drei vier fünf sechs sieben acht neunzig"'strSeqCh1 = " "strSeqCh1 = "One Hundred Thousand One Hundred One Hundred Thousand One Hundred Thousand" strSeqCh2 = "Trillion"'In eine Zeichenfolge konvertieren, die einen numerischen Wert darstellt StrEng = CStr(CDec( StrEng))'Zeichnen Sie die Länge der Zahl aufintLen = Len(StrEng )'In chinesische Zeichen konvertierenFor intCounter = 1 To intLen'Gibt das chinesische Zeichen zurück, das der Zahl entspricht strTempCh = Mid(strEng2Ch, Mid(StrEng, intCounter, 1) + 1, 1)'Wenn ein bestimmtes Bit Null ist Wenn strTempCh = "null" Und intLen <> 1 Dann'Wenn Letzteres ist ebenfalls Null, oder Null erscheint an der 1., 5., 9., 13. usw. Position von unten, dann wird das chinesische Zeichen „Null“ nicht angezeigt. Wenn Mid(StrEng, intCounter + 1, 1) = „0“ Or (intLen - intCounter + 1) Mod 4 = 1 Then strTempCh = „“ElsestrTempCh = strTempCh & Trim(Mid(strSeqCh1, intLen - intCounter + 1, 1))End If'Für die Zeichenfolge, die in der erscheint letzte 1, Zahlen mit den Ziffern 5, 9, 13 usw. Wenn (intLen - intCounter + 1) Mod 4 = 1 Fügen Sie dann das Bit „Trillion“ strTempCh = strTempCh & Trim(Mid(strSeqCh2, (intLen - intCounter) / 4 + 1, 1))End If hinzu, um einen chinesischen Ausdruck zu bilden strCh = strCh & Trim(strTempCh)NextCChinese = strChEnd Funktion
Ergänzung: Schauen wir uns an, wie Sie mit VB Ordner und Dateien umbenennen und kopieren.
Private Sub commandButton1_Click()'Deklarieren Sie den Ordnernamen und den Pfad. Dim FileName, Path As String, EmptySheet As String'Path = "D:/Report" Path = InputBox("Please enter" & Chr(34) & "Grade" & Chr ( 34) & „Der Pfad zum Ordner im Format“ & Chr(34) & „D:/grades“ & Chr(34))FileName = Path & "/Last Semester"EmptySheet = Path & "/Semester Initialization"'MsgBox FileNameIf Dir(FileName, vbDirectory) <> ""Then'MsgBox "Der Ordner existiert"'Holen Sie sich die aktuelle Systemzeit'Dim dd As Date'dd = Now ' MsgBox Format(dd, „yyyymm“)Dim myTime As StringmyTime = InputBox(“Bitte geben Sie die aktuelle Zeit im Format ein“ & Chr(34) & "201811" & Chr(34))If myTime = "" ThenMsgBox "Die aktuelle Zeit darf nicht leer sein! Andernfalls kann der aktuelle Ordner nicht umbenannt werden"Else:Name FileName As Path & "" & myTimeEnd IfEnd If' Bestimmen Sie, ob der Ordner existIf Dir(FileName, vbDirectory) = "" Then'Ordner erstellen MkDir (FileName)'MsgBox ("Erstellt")Else: MsgBox ("Der Ordner ist bereits da")End If'Kopiere die leere Tabelle in das aktuelle Set Fso = CreateObject("Scripting.FileSystemObject")'Kopiere den Ordner Fso.copyfolder EmptySheet, FileName'Fso.copyfile EmptySheet&"c:*. *", "d:" 'Datei kopieren'FileSystemObject.copyfolder EmptySheet, FileName, 1MsgBox ("Vorgang erfolgreich!")End Sub
Zusammenfassen
Das Obige ist die vom Editor eingeführte Methode zum Durchlaufen von Dateien in VB und zum Kopieren, Umbenennen und Kopieren von Ordnern. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Der Herausgeber wird allen rechtzeitig antworten. Ich möchte mich auch bei allen für Ihre Unterstützung der Website Wulin.com bedanken!