我正在创建一个链接到TFS查询的宏。在某些时候,我使用一个刷新每个结果表的函数,之后,我需要知道表范围,因此我的代码如下所示:
Function RefreshQuery(shtTFSExcel_Name As String) As Range
Dim activeSheet As Worksheet
Dim teamQueryRange As Range
Dim refreshControl As CommandBarControl
Dim lr As Integer, lc As Integer
Set refreshControl = FindTeamControl("IDC_REFRESH")
If refreshControl Is Nothing Then
MsgBox "Could not find Team Foundation commands in Ribbon. Please make sure that the Team Foundation Excel plugin is installed.", vbCritical
Exit Function
End If
Application.ScreenUpdating = False
Set activeSheet = ActiveWorkbook.activeSheet
Set teamQueryRange = Worksheets(shtTFSExcel_Name).ListObjects(1).Range
teamQueryRange.Worksheet.Select
teamQueryRange.Select
refreshControl.Execute
activeSheet.Select
Application.ScreenUpdating = True
lr = teamQueryRange.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lc = teamQueryRange.Rows(2).Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set RefreshQuery = Cells(lr, lc)
End Function
现在,当我运行它时,它工作正常,直到它到达End Function
语句,返回错误代码91(我正在监视RefreshQuery
,这会创建预期范围)。我无法确定使其失败的原因,因为它使用Set
语句来分配对象,并且我有一个Range变量来获取函数的结果。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
检查teamQueryRange是否为Nothing,在本例中为refresh set teamQueryRange。