VBA Excel:返回范围的父级工作簿

如何返回包含给定范围的工作簿的名称?

Range.Parent给出父页面…是可能的父工作簿? 对Range.ParentWorkbook的影响

findwindow的评论作为一个例子(后是社区维基 – 没有信贷)

你可以像创build一个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 

晚会来临之前,请注意,这也可以在一行中完成(在Excel 2010中testing):

 myRange.Worksheet.Parent.name 

macros人的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