2017-10-09 21 views
0

私はTFSクエリにリンクされているマクロを作成しています。ある時点で、私は、各結果シートを更新する機能を使用し、その後、私は、それゆえ私のコードは次のようになり、テーブルの範囲を知る必要だ:私はそれを実行したとき、それはだ、今関数のエラーでエラー91を解決する方法

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

これらの値が見つかったかどうか、つまりlrとlcが実際の数値であることを確認しましたか? – SJR

+1

また、 'teamQueryRange.Worksheet.Select'、' teamQueryRange.Select'、 'activeSheet.Select'を取り除き、' Set'を 'Set RefreshQuery = teamQueryRange.Cells(lr、 lc) 'またはそれに類するもの。 – CLR

+0

@SJR、そうですね、正確には、それらの値が正しく割り当てられていることを確認するために 'RefreshQuery'を監視する理由です。 –

答えて

0

teamQueryRangeがNothing(この場合はrefresh set teamQueryRange)であることを確認します。

+0

検証された、それは何もありません。 Set RefreshQuery = teamQueryRange.Cells(lr、lc) 'を実行する前に、範囲の値のペア(lrとlc)を取得していますが、一度割り当てられると、新しい範囲は値(lr + lc)。これはエラーを説明してくれますか? –

関連する問題