使用Excel VBA获取工作表名称

use*_*670 11 excel vba excel-vba

我想创建一个可以返回当前工作表的user-defined函数Excel.我可以使用

sheetname = ActiveSheet.Name
Run Code Online (Sandbox Code Playgroud)

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

反正有没有解决这个问题 - 或者可能因为我认为它不是静态的而是变化的?

muc*_*cio 32

Function MySheet()

  ' uncomment the below line to make it Volatile
  'Application.Volatile
   MySheet = Application.Caller.Worksheet.Name

End Function
Run Code Online (Sandbox Code Playgroud)

这应该是您正在寻找的功能

  • 当我尝试调用此函数时,为什么会出现错误"424""Object required"? (5认同)
  • 需要变得不稳定 (2认同)

jos*_*sef 6

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
Run Code Online (Sandbox Code Playgroud)


mob*_*rme 5

这对我有用。

worksheetName = ActiveSheet.Name  
Run Code Online (Sandbox Code Playgroud)