Vba 需要在msgbox中获取最后一个工作表名称

Vba 需要在msgbox中获取最后一个工作表名称,vba,excel,Vba,Excel,我需要获取msgbox中最右边的最后一个工作表名称 我用过床单。数到最后一张。但它只是给出了第一张纸的名字。请在这方面帮助我 这是我的密码 Sub ShowMRNumber() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Open("

我需要获取msgbox中最右边的最后一个工作表名称

我用过床单。数到最后一张。但它只是给出了第一张纸的名字。请在这方面帮助我

这是我的密码

Sub ShowMRNumber()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open("location")
Set xlSheet = xlApp.Sheets(Sheets.Count)

MsgBox "MR No. is" & vbNewLine xlSheet.Name
xlApp.Workbooks.Close
End Sub
你的台词是

Set xlSheet = xlApp.Sheets(Sheets.Count)
实际上应该是

Set xlSheet = xlBook.Sheets(xlBook.Sheets.Count)
使用xlApp.Sheets可能不是问题,因为这可能默认为Excel的xlApp实例中的活动工作簿,但是,如果没有xlApp或xlBook限定符,Sheets.Count将不会引用在其他Excel实例中打开的工作簿-它将引用运行代码的Excel实例中的活动工作簿。

Set xlApp=New Excel。应用程序是个麻烦制造者。除非您注意退出使用此行创建的实例,否则每次运行此代码时都会有一个新的Excel实例。添加xlApp。退出到您的sub。