2013-10-11 149 views
8

我想在Excel中創建一個user-defined函數,它可以返回當前工作表。我可以使用使用Excel VBA獲取工作表名稱

sheetname = ActiveSheet.Name 

但是,這個問題是,它的工作原理,突然它開始得到不同的工作表名稱。例如,它將返回SHEET I HATE YOU而不是SHEET I LOVE YOU

有沒有辦法解決這個問題 - 或者可能,因爲我認爲它不可能是靜態的,但會有所不同?

回答

24
Function MySheet() 

    MySheet = Application.Caller.Worksheet.Name 

End Function 

這應該是你正在尋找

+1

非常感謝 - 它的偉大工程 - 非常感謝 - 它幫助了我很多做VLOOKUP – user2103670

+1

當它是一個很好的藉口,我要學會與VBA :) – mucio

+2

需要揮發 –

-1

功能可以使用下面的代碼來獲取活動工作表的名稱,並更改爲首選名稱你的。

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 
2
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 
0

這對我的作品。

worksheetName = ActiveSheet.Name 
相關問題