我有几个需要使用文件名的宏,所以当文件名发生变化时更改它们有点痛苦。我希望能够输入一次并在任何地方进行更新。我试过了,它在“Windows”标注中失败了。
Global thisfilename As String
Sub setfilename()
thisfilename = ThisWorkbook.Name
MsgBox thisfilename
End Sub
这就是失败的地方
Sub Copy70io()
'
' copychart Macro
'
Windows("thisfilename").Activate
我确定我的错误非常简单,但除了Google之外我没有任何编程经验,我也无法弄清楚如何解决这个问题。
由于
答案 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