使用Excel VBA获取工作表名称

我想在Excel中创build一个user-defined函数,可以返回当前的工作表。 我可以使用

 sheetname = ActiveSheet.Name 

但问题是,它的工作,突然开始得到不同的工作表名称。 例如,而不是片SHEET I LOVE YOU它返回片SHEET I HATE YOU

有没有办法解决这个问题 – 或者有可能,因为我认为它不能是静态的,但是有所不同?

 Function MySheet() MySheet = Application.Caller.Worksheet.Name End Function 

这应该是你正在寻找的function

 Sub FnGetSheetsName() Dim mainworkBook As Workbook Set mainworkBook = ActiveWorkbook For i = 1 To mainworkBook.Sheets.Count 'Either we can put all names in an array , here we are printing all the names in Sheet 2 mainworkBook.Sheets("Sheet2").Range("A" & i) = mainworkBook.Sheets(i).Name Next i End Sub 

这对我有用。

 worksheetName = ActiveSheet.Name 

您可以使用以下代码获取活动工作表名称并将其更改为您的首选名称。

 Sub ChangeSheetName() Dim shName As String Dim currentName As String currentName = ActiveSheet.Name shName = InputBox("What name you want to give for your sheet") ThisWorkbook.Sheets(currentName).Name = shName End Sub