gpt4 book ai didi

excel - Mac Excel 2016 VBA - Workbook.open 出现 1004 错误

转载 作者:行者123 更新时间:2023-12-04 19:49:11 25 4
gpt4 key购买 nike

我正在尝试让一个在 Excel 2011 for Mac 中完美运行的宏在 Excel 2016 for mac 中运行。目标是让用户指定一个包含 .csv 文件的文件夹,然后宏循环遍历所有 .csvs,打开每个文件以将信息从其中复制到另一个工作簿中。

尝试打开用户选择的文件夹中的第一个 .csv 文件时,宏失败,出现 1004 错误,找不到文件。

(旁注:在宏的前面,workbooks.open 与用户选择的文件完美配合)

这个宏很大,所以我做了一个全新的小宏来解决这个问题。这是更小的测试代码,它具有相同的失败行为:

Sub Test()
Dim folderpath As Variant
Dim filename As Variant
Dim newfilename As Variant
Dim wb As Workbook
Dim newfolderpath As Variant

folderpath = MacScript("choose folder as string")

newfolderpath = Replace(folderpath, ":", "\")

MsgBox (newfolderpath)

filename = MacScript("Choose file as string")
newfilename = Replace(filename, ":", "\")
MsgBox (filename)
MsgBox (newfilename)
MsgBox (Dir(filename))
MsgBox (newfolderpath & Dir(filename))

Set wb = Workbooks.Open(newfolderpath & Dir(filename))
End Sub

所有消息框都提供预期值。

  • newfolderpath= 带\分隔符的整个路径。
  • filename= 完整路径和文件名,带 : 分隔符。
  • newfilename= 带\分隔符的完整路径和文件名。
  • Dir(filename)= 只是文件名。
  • newfolderpath & Dir(filename))= 带\的完整路径和文件名分隔符。

设置 wb 行给出:

Run-time error '1004'
'Hard DRIVE\USERS\DAVE\DESKTOP\CSVS\1.CSV'

找不到。

显然文件在那里,可以打开并且可以工作。

非常感谢任何帮助。

最佳答案

好吧,我想我找到了答案,或者至少找到了适合我的项目的答案。

我回到宏前面的 workbooks.open(user-selected FILE),发现它正在将其读取为“/users/Dave/Desktop/csvs/1.csv”。因此,即使 debug 和 msgbox 返回反斜杠,它在某种程度上想要正斜杠(你是部分正确的,Tim)。此外,它清楚地截断了 Mac 硬盘驱动器的名称,并以用户目录开头。所以,我只是修改了变量以匹配这种格式,瞧,它起作用了。对于那些感兴趣的人,这是我最后使用的修改后的代码:

Sub Test()

Dim folderpath As Variant
Dim newfilename As Variant
Dim wb As Workbook
Dim newfolderpath As Variant
Dim newfp As Variant

folderpath = MacScript("choose folder as string")
newfolderpath = Replace(folderpath, ":", "/")
newfp = Right(newfolderpath, Len(newfolderpath) - InStr(newfolderpath, "/") + 1)

newfilename = Dir(newfp)

Set wb = Workbooks.Open(newfp & newfilename)

Exit Sub

感谢所有提供帮助的人。

关于excel - Mac Excel 2016 VBA - Workbook.open 出现 1004 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43748607/

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