打开一个带有变量名的文件

时间:2016-02-16 15:11:19

标签: excel vba excel-vba excel-2010 excel-2007

你好我有当前问题,我在Module1中有一个名为Dateiname的变量,它是一个Excel文件的名称。这个变量取值为" 04_01_2017.xlsm"。它可能因用户输入

而异
    Dateiname = Ord & mNummerGanz & "_" & Name & ".xlsm"
    ThisWorkbook.SaveAs Filename:=Dateiname

我希望能够从另一个Excel文件激活此Excel文件。在激活具有变量名称的Excel文件之前,此Excel文件在Module2之前执行一些操作。

当我输入时;

    Windows(Dateiname).Activate

我收到的错误如:运行时错误9. aynyone可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

在所有模块中使用Option Explicit

Module1中的变量不在Module2的范围/可用范围内。 Option Explicit将提醒您此错误,因为Dateiname很可能在Module2的范围内未定义,并且具有空/ nullstring值。

如果Dateiname为空/ nullstring,这将总是使下标超出范围(类型9)错误,因为它等同于Windows("").Activate,并且因为没有这样的命名窗口/工作簿,会出现错误。

如果Dateiname是模块范围的变量,您可以执行以下操作:

Windows(Module1.Dateiname).Activate

或者最好:

Workbooks(Module1.Dateiname).Activate

正如其他人所说,你应该使用Workbook变量。

如果Dateiname是程序范围

您需要将变量显式传递给Module2中的过程。如,

模块1:

Sub foo()
Dim Dateiname as String
Dateiname = "some value"

Call Module2.bar(Dateiname)

End Sub

单词数:

Sub bar(Dateiname as String)

MsgBox Dateiname

End Sub