打开一个带有变量名的文件
opening a file with a variable name
你好,我有当前的问题,我在 Module1 中有一个名为 Dateiname 的变量,它是一个 Excel File.This 变量的名称,其值如“04_01_2017.xlsm”。它可能因用户输入而异
Dateiname = Ord & mNummerGanz & "_" & Name & ".xlsm"
ThisWorkbook.SaveAs Filename:=Dateiname
我希望能够从另一个 Excel file.This Excel 文件激活此 Excel 文件,然后在激活 Excel 之前在 Module2 中执行一些操作带有变量名称的文件。
当我打字时;
Windows(Dateiname).Activate
我收到如下错误:运行时错误 9。任何人都可以帮助我吗?
在所有模块中使用 Option Explicit
。
模块 1 中的变量不在模块 2 的 scope/available 中。 Option Explicit 会提醒您注意此错误,因为 Dateiname
很可能在 Module2 的范围内未定义,并且具有 empty/nullstring 值。
如果 Dateiname
是 empty/nullstring,这总是会引发下标超出范围(类型 9)错误,因为它等同于 Windows("").Activate
,并且因为没有这样命名的 Window/Workbook,将引发错误。
如果 Dateiname
是一个模块范围的变量,你可以这样做:
Windows(Module1.Dateiname).Activate
或者最好是:
Workbooks(Module1.Dateiname).Activate
正如其他人所提到的,您可能应该使用 Workbook
变量。
IF Dateiname
是过程作用域
您需要明确地将变量传递给模块 2 中的过程。例如,
模块 1:
Sub foo()
Dim Dateiname as String
Dateiname = "some value"
Call Module2.bar(Dateiname)
End Sub
模块 2:
Sub bar(Dateiname as String)
MsgBox Dateiname
End Sub
你好,我有当前的问题,我在 Module1 中有一个名为 Dateiname 的变量,它是一个 Excel File.This 变量的名称,其值如“04_01_2017.xlsm”。它可能因用户输入而异
Dateiname = Ord & mNummerGanz & "_" & Name & ".xlsm"
ThisWorkbook.SaveAs Filename:=Dateiname
我希望能够从另一个 Excel file.This Excel 文件激活此 Excel 文件,然后在激活 Excel 之前在 Module2 中执行一些操作带有变量名称的文件。
当我打字时;
Windows(Dateiname).Activate
我收到如下错误:运行时错误 9。任何人都可以帮助我吗?
在所有模块中使用 Option Explicit
。
模块 1 中的变量不在模块 2 的 scope/available 中。 Option Explicit 会提醒您注意此错误,因为 Dateiname
很可能在 Module2 的范围内未定义,并且具有 empty/nullstring 值。
如果 Dateiname
是 empty/nullstring,这总是会引发下标超出范围(类型 9)错误,因为它等同于 Windows("").Activate
,并且因为没有这样命名的 Window/Workbook,将引发错误。
如果 Dateiname
是一个模块范围的变量,你可以这样做:
Windows(Module1.Dateiname).Activate
或者最好是:
Workbooks(Module1.Dateiname).Activate
正如其他人所提到的,您可能应该使用 Workbook
变量。
IF Dateiname
是过程作用域
您需要明确地将变量传递给模块 2 中的过程。例如,
模块 1:
Sub foo()
Dim Dateiname as String
Dateiname = "some value"
Call Module2.bar(Dateiname)
End Sub
模块 2:
Sub bar(Dateiname as String)
MsgBox Dateiname
End Sub