激活工作簿

我有一个string“sFile”存储工作簿的扩展名。

我想激活这个工作簿,存储在一个string中。

然后closures它。

正在使用的代码是:

Dim wbk as workbook Set wbk = Workbooks(sFile) wbk.Activate wbk.close 

但是这不行,请帮忙。

你需要看看你是否成功Set wbk = Workbooks(sFile) ,只有在工作簿打开时才能工作。

如果不成功( wbk Is Nothing ),则需要打开工作簿。

 Option Explicit Sub SetWB_toOpenWorkbook() Dim wbk As Workbook Dim sFile As String Dim FilePath As String ' just an example of my file name (clean with extension) sFile = "SO_1.xlsm" ' set the Dektop path FilePath = "C:\Users\" & Environ("USERNAME") & "\Desktop\" On Error Resume Next Set wbk = Workbooks(sFile) On Error GoTo 0 If wbk Is Nothing Then ' if not open, then open the workbook Set wbk = Workbooks.Open(FilePath & sFile) End If ' just for my tests, put the workbook name in "A1" in "Sheet1" wbk.Worksheets("Sheet1").Range("A1").Value = wbk.Name wbk.Activate wbk.Close True End Sub 

正如在评论中提到的,它只需要名称(不是path) – 这应该为你做:

 Dim wbk as workbook Set wbk = Workbooks(right(sFile,Instrrev(sFile,"\")+1)) wbk.Activate wbk.close