设置文件名variables,一次使用多个地方

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

Global thisfilename As String Sub setfilename() thisfilename = ThisWorkbook.Name MsgBox thisfilename End Sub 

这是失败的地方

 Sub Copy70io() ' ' copychart Macro ' Windows("thisfilename").Activate 

我相信我的错误非常简单,但是我没有Google以外的编程经验,所以我一直无法弄清楚如何解决这个问题。

谢谢

您收到错误,因为您的variables在引号内。 而引号内的任何内容都被认为是一个string:)

尝试这个

 Windows(thisfilename).Activate 

FindWindow也给了你一个select。

这是我怎么做的…

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

 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