Excel VBA 宏在我的电脑上运行完美,但在不同的机器上有不同的错误?

问题描述 投票:0回答:1

我正在开发一个到目前为止无需宏即可运行的项目。在实现宏时,我的机器执行它们时没有错误,但是当在其他机器上为其他用户测试它时,它们在代码本身的随机点上出现问题 - 但总是停在“保存此文档”部分。我延长了与保存它相关的行,这给了我一个更好的方式来命名文件,但无法弄清楚为什么其他计算机在运行这些宏时会出现问题,而我的却没有。

下面的代码被严重破坏和拼凑在一起,但应该在用户桌面上创建一个文件,无论用户名如何,解决了我在多个用户具有不同保存路径时遇到的原始问题。它似乎在涉及实际保存文档的部分工作得很好 - 即,它使用我需要的两张表、格式和所有内容创建了一个新工作表,但抛出 1004 错误并且不保存/命名文档。感谢您的帮助,我对在 Excel 中使用宏还比较陌生。

Sub XWorkbook()
    Dim SavePath As String
    Dim File1 As String
    Dim Filename As String
    
    Path = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\[MyFolderName]\"
                             
    If Dir(Path, vbDirectory) = "" Then MkDir Path

    Application.DisplayAlerts = False

    Worksheets(Array("[Sheet1]", "[Sheet2]")).Copy
    With ActiveWorkbook

    SavePath = "C:\Users\" & Environ("UserName") & "\Desktop\[MyFolderName]\[DocumentName]"
    File1 = " "
    Filename = File1 & " " & Format(Now(), "MM-DD-YYYY") & ".xlsm"

    ActiveWorkbook.SaveAs SavePath & Filename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    
    End With
End Sub

我尝试延长负责使用 environ() 函数保存文档的部分,并添加一个部分来创建文件夹,以便每个用户*在其桌面上应该*有一个标准化文件夹,以消除特定用户拥有的任何问题不同的路径。除此之外,我一无所知。与所有其他用户一样,运行最新的 Office 365。调试时错误总是准确地指向这里:

ActiveWorkbook.SaveAs SavePath & Filename, FileFormat:=xlOpenXMLWorkbookMacroEnabled

我还确保所有用户将原始文件保存在本地,并在打开文档时启用宏。这些都是完全相同的戴尔 Thinkpad 型号,除了用户信息之外,几乎在所有方面都应该相似,我认为 environ() 会对此有所帮助。我见过一些类似的问题谈论驱动器映射,但据我所知,这已经被考虑在内,并且没有人应该有将日期“MM-DD-YYYY”连字符替换为斜杠的设置。有什么想法吗?

excel vba save
1个回答
0
投票

这对我有用:

Sub XWorkbook()
    
    Dim wbPath As String, saveName As String
    
    wbPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\MyFolderName\"
    If Dir(wbPath, vbDirectory) = "" Then MkDir wbPath
    
    saveName = wbPath & "DocumentName " & Format(Now(), "MM-DD-YYYY") & ".xlsm"
    
    'assuming the sheets are in the same workbook as this code...
    ThisWorkbook.Worksheets(Array("Sheet1", "Sheet2")).Copy
    'save the new workbook with the sheet copies
    ActiveWorkbook.SaveAs Filename:=saveName, _
                          FileFormat:=xlOpenXMLWorkbookMacroEnabled

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.