如何返回包含给定范围的工作簿名称?
Range.Parent
可以获取父表格,但是如何获取父工作簿呢?是否有类似于 Range.ParentWorkbook
的方法可以实现呢?
如何返回包含给定范围的工作簿名称?
Range.Parent
可以获取父表格,但是如何获取父工作簿呢?是否有类似于 Range.ParentWorkbook
的方法可以实现呢?
稍晚加入派对的朋友们,注意这也可以在一行中完成(已经在Excel 2010中测试):
myRange.Worksheet.Parent.name
Macro Man的GetWorkbookName()函数将会是这样的:
Private Function GetWorkbookName(myRange As Excel.Range) As String
GetWorkbookName = myRange.Worksheet.Parent.name
End Function
例子使用方法的相同:
Sub Foo()
Dim parentWorkbookName As String
parentWorkbookName = GetWorkbookName(Range("A1"))
MsgBox parentWorkbookName
End Sub
MyRange.Parent.Name
即可获取工作表名称, MyRange.Parent.Parent.Name
获取工作簿名称,MyRange.Parent.Parent.Parent.Name
获取 Excel 应用程序名称。 - Darren Bartrup-Cook以findwindow的评论为例(帖子是社区维基 - 不要为此负责)
您可以创建一个UDF,例如接受Range
作为参数:
Private Function GetWorkbookName(myCell As Excel.Range) As String
Dim a As Excel.Worksheet
Set a = myCell.Parent
GetWorkbookName = a.Parent.Name
End Function
例子用法:
Sub Foo()
Dim parentWorkbookName As String
parentWorkbookName = GetWorkbookName(Range("A1"))
MsgBox parentWorkbookName
End Sub