需要在msgbox

时间:2017-05-19 09:13:43

标签: excel vba excel-vba

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

我使用Sheets(Sheets.Count)获取最后一张。但它只给出了第一张床单的名字。请帮助我。

这是我的代码。

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

1 个答案:

答案 0 :(得分:1)

你的话说

Set xlSheet = xlApp.Sheets(Sheets.Count)

实际应该是

Set xlSheet = xlBook.Sheets(xlBook.Sheets.Count)

使用xlApp.Sheets可能不是问题,因为这可能违反了xlApp Excel实例中的活动工作簿,但是Sheets.Count(没有xlAppxlBook限定符)不会引用在不同Excel实例中打开的工作簿 - 它将指代运行代码的Excel实例中的活动工作簿。