2017-05-19 6 views
0

msgboxの最後のワークシート名を取得する必要があります。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 
+0

'Set xlApp = New Excel.Application'はトラブルメーカーです。この行を使用して作成しているインスタンスを終了させない限り、このコードを実行するたびにExcelの新しいインスタンスが作成されます。あなたのサブに 'xlApp.Quit'を追加してください。 – Variatus

答えて

1

それはおそらく以内にアクティブなブックにデフォルト設定されているだろうと

Set xlSheet = xlApp.Sheets(Sheets.Count) 

が実際にxlApp.Sheetsを使用し

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

でなければなりませんと言ってあなたのラインは、おそらく問題ではありませんExcelのxlAppインスタンスですが、Sheets.CountxlAppまたはxlBook修飾子)は、Excelの別のインスタンスで開いているワークブックを参照していないため、コードが実行されていたExcelのインスタンスでアクティブなワークブックを参照していました。

+0

ありがとうございます。それは助けになった。 – Divya

関連する問題