gpt4 book ai didi

VBA 保存工作簿 - 替换同名文件时出错

转载 作者:行者123 更新时间:2023-12-03 03:34:13 26 4
gpt4 key购买 nike

我使用下面的 VBA 代码自动保存文件,但允许用户选择文件位置和名称。我希望用户使用一个固定的文件名,例如:TestImport.xlsx,但我需要一些代码来允许他们选择特定 PC 上的路径。他们将每周运行此例程,因此他们可能拥有同名的以前版本的工作簿,因此他们必须回答对话框提示以替换文件。

当我运行代码时,出现以下错误:

Run-time error '1004'
Cannot access 'TestImport.xlsx'

你能帮我看看下面的内容有什么问题吗?

Dim fd As FileDialog, fillName As String

On Error GoTo ErrorHandler

Set fd = Application.FileDialog(msoFileDialogSaveAs)

If fd.Show = True Then
If fd.SelectedItems(1) <> vbNullString Then
fillName = fd.SelectedItems(1)
End If
Else
'Stop Code Execution for Null File String
End
End If

saveFileAs = fillName

'Cleanup
Set fd = Nothing

Windows("MeritImport.xlsx").Activate
Application.ActiveWorkbook.SaveAs Filename:=fillName, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False


Exit Sub

ErrorHandler:
Set fd = Nothing
MsgBox "Error " & Err & ": " & Error(Err)

最佳答案

I have a fixed filename that I want the user to use, for example: TestImport.xlsx

然后让用户仅选择文件夹位置并使用它来保存文件。例如

Sub Sample()
Dim Ret
Dim flname As String

Ret = BrowseForFolder("C:\")

If Not Ret = "" Then
If Right(Ret, 1) <> "\" Then Ret = Ret & "\"

flname = Ret & "TestImport.xlsx"

MsgBox flname
'
'~~> Rest of your code
'
End If
End Sub

Function BrowseForFolder(Optional OpenAt As Variant) As Variant
Dim ShellApp As Object

Set ShellApp = CreateObject("Shell.Application"). _
BrowseForFolder(0, "Please choose a folder", 0, OpenAt)

On Error Resume Next
BrowseForFolder = ShellApp.self.Path
On Error GoTo 0

Set ShellApp = Nothing

Select Case Mid(BrowseForFolder, 2, 1)
Case Is = ":"
If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
Case Is = "\"
If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
Case Else
GoTo Invalid
End Select

Exit Function
Invalid:
BrowseForFolder = False
End Function

当您尝试使用 flname 覆盖文件(如果已有副本)时,您将收到提示。用户可以选择"is"或“否”。如果您不想给用户选择,则可以使用 Application.DisplayAlerts = False

注意:如果副本已打开,则无法覆盖它。如果您尝试这样做,将会出现错误。

关于VBA 保存工作簿 - 替换同名文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44443775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com