Primero veamos cómo atravesar archivos en VB y usar expresiones regulares para completar la función de copia.
Copie "Proyecto 1", "Proyecto 1" y otros archivos en el archivo de origen en la ruta "E:/my/Report/Achievements" al archivo de destino. He aquí cómo hacerlo.
Private Sub Option1_Click()Dim myStr As String' Al ingresar el número de serie del artículo en la celda, se especifica mediante el método InputBox utilizado actualmente, y este método también se puede utilizar. Elige uno de los dos. 'myStr = Hojas("Hoja1").Rango("D21").Texto '''''''''''''''''''''''''' '''' ''''''''''''''''''''' 'Ingrese el número de serie del proyecto a través del cuadro de entrada Inicio '''''''''''' ''''' ''''''''''''''''''''''''''''''''' '' myStr = InputBox("Ingrese el número de serie del proyecto. El número de serie debe ser números arábigos. ¡El formato debe ser correcto! El formato es como " & Chr(34) & "2 items" & Chr(34)) '''' '''''''' '''''''''''''''''''''''''''''''''''' ' 'Ingrese el número de serie del proyecto a través de InputBoxEnd '''''''''''''''''''''''''''''''''''' '''''''' ''''' Dim endNum As Integer 'La función MID intercepta el dígito final endNum = InStrRev(myStr, "item") myStr = Mid(myStr, 1, endNum - 1) 'MsgBox myStr Dim CChinesStr As String CChineseStr = CChinese(myStr ) 'Convertir números arábigos a caracteres chinos'MsgBox CChineseStr '''''''''''''''''''''''''''' '''''''' ''''''''''''''' 'Recorre los archivos bajo la ruta Inicio '''''''''''''''''' '''''''' ''''''''''''''''''''''''''' Dim fso Como objeto Carpeta Dim Como objeto Subcarpeta Dim Como objeto Archivo Dim Como objeto Dim fileNameArray As String Dim basePath As String basePath = "E:/my/report/achievements" Establecer fso = CreateObject("scripting.filesystemobject") 'Crear objeto FSO Establecer carpeta = fso.getfolder(basePath & "/archivo fuente") Para cada archivo en carpeta. Archivos 'Atravesar archivos bajo la carpeta raíz' fileNameArray = fileNameArray & file & "|" Dim mRegExp As Object 'Objeto de expresión regular Dim mMatches As Object 'Coincidir con el objeto de colección de cadenas Dim mMatch As Object 'Coincidir con la cadena Set mRegExp = CreateObject("Vbscript.Regexp") With mRegExp .Global = True 'True significa coincidir con todos, False significa coincidir solo con la primera coincidencia item.IgnoreCase = True 'True significa que no distingue entre mayúsculas y minúsculas, False significa que distingue entre mayúsculas y minúsculas'.Pattern = "([0-9])?[.]([0-9])+|([0-9])+" 'Coincidir patrón de caracteres'.Pattern = "((([0-9]+)? )|(([一二三四五六七八九十]+)?)) artículo(([一二三四五六七八九十]+)?)|([0-9])? 'Coincidir patrón de carácter'.Pattern = "(Item(234)+)|(((234)?|(Doscientos treinta y cuatro?)Item(234?)" 'Coincidir patrón de caracteres'.Pattern = "(((" & "+) ?)|(([一二三四五六七八九十]+)?)) item(([一二三四五六七八九十]+)?)|([0-9 ])? " 'Coincide con el patrón de caracteres.Patrón = "(item(" & CChineseStr & ")+)|(((" & myStr & ")?|(" & CChineseStr & ")?)item(" & myStr & ")?)" 'Coincidir patrón de caracteres'Establecer mMatches = .Execute(Sheets("Report").Range("D21").Text) 'Ejecuta una búsqueda regular y devuelve un conjunto de todos los resultados coincidentes. Si no se encuentra, estará vacío. Establecer mMatches =. .Execute(file) 'Ejecuta una búsqueda regular y devuelve el conjunto de todos los resultados coincidentes. Si no se encuentra, estará vacío para cada mMatch en mMatches 'SumValueInText = SumValueInText + CDbl(mMatch.Value) 'SumValueInText = SumValueInText & mMatch. Valor Si mMatch .Value <> "" Entonces 'fileNameArray = fileNameArray & mMatch.Value & "_" fso.copyfile basePath & "/archivo fuente/" & mMatch.Value & ".*", basePath & "/archivo de destino" & myStr 'Copiar operaciónEnd si el siguiente termina con 'MsgBox fileNameArray Establecer mRegExp = Nada establecido mMatches = Nada siguiente conjunto fso = Nada Establecer carpeta = Nada '''''''''''''''''''''''''''''' ''''''''' ''''''''' 'Recorre los archivos bajo la rutaEnd '''''''''''''''''''''''''''''' '''''''''' ''''''''' MsgBox "Operación completada"End Sub'Convertir números arábigos a caracteres chinosFunción privada CChinese(StrEng As String) As String'Verificar datosSi no es numérico (StrEng) EntoncesSi Trim(StrEng) <> “” Entonces MsgBox “Número no válido”CCino = “”Salir de la funciónEnd If'define la variable Dim intLen como entero, intCounter como IntegerDim strCh como cadena, strTempCh como StringDim strSeqCh1 como cadena, strSeqCh2 como StringDim strEng2Ch como String'strEng2Ch = "cero uno dos tres cuatro cinco tierra siete siete ocho nueve" strEng2Ch = "cero uno dos tres cuatro cinco seis siete ocho noventa"'strSeqCh1 = " "strSeqCh1 = "Cien mil cien mil cien mil" strSeqCh2 = "Trillion"'Convertir a una cadena que represente un valor numérico StrEng = CStr(CDec( StrEng))'Registrar la longitud del númerointLen = Len(StrEng )'Convertir a caracteres chinosPara intCounter = 1 A intLen'Devuelve el carácter chino correspondiente al número strTempCh = Mid(strEng2Ch, Mid(StrEng, intCounter, 1) + 1, 1)'Si un determinado bit es ceroSi strTempCh = "zero" Y intLen <> 1 Entonces'Si el Este último también es cero, o aparece cero en las posiciones 1, 5, 9, 13, etc. desde abajo, entonces el carácter chino "cero" no se mostrará si Mid(StrEng, intCounter + 1, 1) = “0” O (intLen - intCounter + 1) Mod 4 = 1 Entonces strTempCh = “”ElsestrTempCh = strTempCh & Trim(Mid(strSeqCh1, intLen - intCounter + 1, 1))End If'para el primer y último número con dígitos de 5, 9, 13, etc. Si (intLen - intCounter + 1) Mod 4 = 1 Luego agregue el bit "Trillion" strTempCh = strTempCh & Trim(Mid(strSeqCh2, (intLen - intCounter) / 4 + 1, 1))End If' para formar una expresión china strCh = strCh & Trim(strTempCh)NextCCinese = strChEnd Función
Suplemento: veamos cómo usar VB para cambiar el nombre y copiar carpetas y archivos.
Private Sub commandButton1_Click()'Declarar el nombre de la carpeta y la ruta Dim FileName, Path As String, EmptySheet As String'Path = "D:/Report" Path = InputBox("Por favor ingrese" & Chr(34) & "Calificación" & Chr ( 34) & “La ruta a la carpeta, en el formato de” & Chr(34) & “D:/grades” & Chr(34))FileName = Ruta & "/Último semestre"EmptySheet = Ruta & "/Inicialización del semestre"'MsgBox FileNameIf Dir(FileName, vbDirectory) <> ""Then'MsgBox "La carpeta existe"'Obtener la hora actual del sistema'Dim dd As Date'dd = Ahora ' MsgBox Format(dd, “aaaamm”)Dim myTime As StringmyTime = InputBox(“Ingrese la hora actual en el formato de” & Chr(34) & "201811" & Chr(34))If myTime = "" ThenMsgBox "¡La hora actual no puede estar vacía! De lo contrario, no se puede cambiar el nombre de la carpeta actual"Else:Name FileName As Path & "" & myTimeEnd IfEnd If' Determine si la carpeta existeSi Dir(FileName, vbDirectory) = "" Luego'Crear carpeta MkDir (FileName)'MsgBox ("Creado")Else: MsgBox ("La carpeta ya está ahí")End If'Copia la tabla vacía al Set Fso = CreateObject("Scripting.FileSystemObject")'Copia la carpeta Fso.copyfolder Hoja Vacía, Nombre de Archivo'Fso.copyfile Hoja Vacía&"c:*. *", "d:" 'Copiar archivo'FileSystemObject.copyfolder Hoja vacía, Nombre de archivo, 1MsgBox ("¡Operación exitosa!")End Sub
Resumir
El anterior es el método introducido por el editor para recorrer archivos en VB y usar expresiones regulares para copiar, cambiar el nombre y copiar carpetas en VB. Espero que le resulte útil. Si tiene alguna pregunta, déjeme un mensaje. El editor responderá a todos a tiempo. ¡También me gustaría agradecer a todos por su apoyo al sitio web Wulin.com!