【发布时间】:2019-07-01 22:19:27
【问题描述】:
我需要将几个 excel 工作表(“Y”、“X”)从一个文件复制到另一个 excel 文件中的同一个工作表(称之为 Z - 我正在使用 VBA 的同一个文件)。 我的限制是第一个 excel 文件(带有 X,Y)的名称和路径正在改变,因此我试图使用“as String”和 Application.GetOpenFilename() 命令编写更通用的东西,但我'我收到一个错误。
试图分成2个不同的子
Sub BrowseForFile()
Dim sFileName As String
sFileName = Application.GetOpenFilename(, , "open the file: " )
If sFileName = "false" Then Exit Sub
MsgBox sFileName
Workbooks.Open (sFileName)
Workbooks(sFileName).Sheets("X").Activate
Stop
- 运行时错误 9
- 文件未找到(我认为是 1004)
【问题讨论】:
-
乍一看强制
GetOpenFilename中的文件类型为“.xls*”,并且将sFileName设为Variant? -
错误在哪一行被抛出?
-
所以您可以将
sFileName转换为字符串。.GetOpenFilename()返回类型Variant,但是转换为字符串后您可以操作文件路径和文件名。