我有一个excel文件,我需要从一个文件夹移动到另一个点击按钮。目前,我有以下代码。
Private Sub btnReview_Click()
Dim FSO
Dim projectNumber As String
Dim fileSource As String
Dim fileDestination As String
projectNumber = Range("AI6").Value
Set FSO = CreateObject("Scripting.FileSystemObject")
fileSource = ActiveWorkbook.path & "\" & ActiveWorkbook.Name
fileDestination = getProjectFolder(projectNumber)
' ActiveWorkbook.Close True
FSO.MoveFile fileSource, fileDestination
End Sub
其中,getProjectFolder
返回要将文件移动到的文件夹的路径(包括文件的新名称)。
这在行FSO.MoveFile
上失败,错误代码为70,“权限被拒绝”。我确信这是因为文件打开时不可能移动或重命名。在尝试移动文件夹之前,我已经尝试过关闭它,但是很明显,在ActiveWorkbooks.Close
之后,没有执行任何行就结束了这个子文件夹。
有什么方法可以不使用外部文件/代码来实现我想要做的事情吗?我希望用户能够按下工作表上的按钮,然后将工作表移动到一个单独的文件夹中。这个是可能的吗?我唯一的其他想法是使用SaveAs方法将文件保存到正确的位置,然后从原始文件夹中删除原始文件。这似乎是一个相当不雅的解决方案,我不知道这是怎么可能的。
任何想法、技巧、技巧、解决办法等都会受到赞赏。
发布于 2022-05-20 17:57:58
做起来很容易!尝试如下所示,您可以将其保存在一个新文件夹中,然后继续删除旧文件。
Public Sub MoveMeToANewWorld()
currentName = ThisWorkbook.Name,
currentPathAndName = ThisWorkbook.FullName
currentPath = Replace(currentPathAndName, currentName, "")
newPath = "NewFolder\"
With ThisWorkbook
.SaveAs Filename:= currentPath & newPath & currentName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End with
'Deleting the OldFile
With New FileSystemObject
If .FileExists(currentPathAndName) Then
.DeleteFile currentPathAndName
End If
End With
End Sub
希望它能帮到你!
https://stackoverflow.com/questions/72321314
复制相似问题