我有一个 Excel 中文件名开头的列表, 我想制作一个宏,将它们从一个定义的目录移动到另一个目录 文件名的命名方式如下 AAAAXXX AAAA-是我将放入 Excel 中的唯一数字 XXX- 也是唯一的数字,但我希望宏在移动/复制文件时跳过它们 我尝试在文件名后使用
*
,但它将其读取为文件名的一部分,而不是作为通配符
我发现当我将变量放入其中时,Fso.Movefile
不起作用。我该如何解决它?
或者我确实需要使用其他命令
不使用库可以做到吗?
Sub movingfilename()
Dim a As String
Dim cell As Range
Dim locationstart As String
Dim locationend As String
Dim filename As String
Dim notfoundfiles As New Collection
Dim message As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
locationstart = "G:\Test\start\" & filename
locationend = "G:\Test\stop\" & filename
For Each cell In Range("A2:A" & Cells(Rows.Count, "A").End(-4162).Row)
If Not IsEmpty(cell) Then
filename = cell.Value
fso.MoveFile "G:\Test\start\filename*", "G:\Test\stop\"
End If
Next cell
End Sub
我想将文件从位置a移动到位置b。我有他们名字的开头,希望 excel 能够让他们忽略名字的其余部分
您的代码无法正常工作,因为您错误地构造了代码参数,而不是因为它不接受变量。
根据您的需要调整以下工作代码:
Option Explicit
Sub movingFilename()
Dim fso As FileSystemObject
Dim locationStart As String
Dim locationEnd As String
Dim fileName As String
Dim c As Range
locationStart = "G:\Test\start\"
locationEnd = "G:Test\end\"
Set fso = New FileSystemObject
With ThisWorkbook.Worksheets("Sheet5")
For Each c In Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
If Not IsEmpty(c) Then
fileName = c.Value & "*"
fso.MoveFile locationStart & fileName, locationEnd
End If
Next c
End With
End Sub