将filename变量设置一次以使用多个位置

时间:2015-09-28 19:26:57

标签: excel excel-vba vba

我有几个需要使用文件名的宏,所以当文件名发生变化时更改它们有点痛苦。我希望能够输入一次并在任何地方进行更新。我试过了,它在“Windows”标注中失败了。

Global thisfilename As String

Sub setfilename()
    thisfilename = ThisWorkbook.Name
    MsgBox thisfilename
End Sub

这就是失败的地方

Sub Copy70io()
'
' copychart Macro
'

    Windows("thisfilename").Activate

我确定我的错误非常简单,但除了Google之外我没有任何编程经验,我也无法弄清楚如何解决这个问题。

由于

1 个答案:

答案 0 :(得分:1)

您收到错误,因为您的变量在引号内。引号内的任何内容都被视为字符串:)

试试这个

Windows(thisfilename).Activate

FindWindow也为您提供了另一种选择。

以下是我将如何做到这一点......

不使用全局变量,而是将代码转换为函数。这是一个例子

Function wb() As Workbook
    Set wb = ThisWorkbook
End Function

然后你可以用它作为

Sub Copy70io()
    wb.Activate
End Sub

另一个例子

Function wb() As Workbook
    Set wb = Workbooks("Blah Blah")
End Function

Sub Copy70io()
    wb.Activate
End Sub