我想使用一个函数,将允许我从以前的工作表中导入一个范围。我不确定我目前的宏是否允许这样做。我可以手动调用以前的工作表,但不能使用我拥有的功能。VLookup范围在另一个工作表动态
这里是一个正常工作的功能时,我手动输入工作表名称:
=IFERROR(VLOOKUP(D3,Aug9Daily!$D$3:$F$50,3, FALSE),"")
这里是我在尝试使用的功能:
=IFERROR(VLOOKUP(D3,NextSheetName()$D$3:$F$50,3, FALSE),"")
这是VBA,我我正在使用NextSheetName宏:
Function NextSheetName(Optional WS As Worksheet = Nothing) As String
Application.Volatile True
Dim S As String
Dim Q As String
If IsObject(Application.Caller) = True Then
Set WS = Application.Caller.Worksheet
If WS.Index = WS.Parent.Sheets.Count Then
With Application.Caller.Worksheet.Parent.Worksheets
Set WS = .Item(1)
End With
Else
Set WS = WS.Next
End If
If InStr(1, WS.Name, " ", vbBinaryCompare) > 0 Then
Q = "'"
Else
Q = vbNullString
End If
Else
If WS Is Nothing Then
Set WS = ActiveSheet
End If
If WS.Index = WS.Parent.Worksheets.Count Then
With WS.Parent.Worksheets
Set WS = .Item(1)
End With
Else
Set WS = WS.Next
End If
Q = vbNullString
End If
NextSheetName = Q & WS.Name & Q
End Function
我在做什么错?有没有更好的方法来动态地从另一个工作表中选择范围?
您得到了什么错误消息? – PowerUser 2012-08-13 18:27:46
如果我按上面所述输入它,则表示您键入的公式包含错误。如果我在引号内输入范围,NextSheetName($ D $ 3:$ F $ 50),3,FALSE),我得到一个空白单元格(不应该是空白) – rupes0610 2012-08-13 18:29:58