私はそれが非常に単純なことを知っていますが、どこが間違っているのかわかりません - 助けてください
シーンの設定:
現在、ワークブックに 3 つのワークシートがあります
Sheet1 – レースのフィクスチャーの日付に応じて移動する生データで構成されています
Sheet2 - シート 1 からコピーされた生データで構成されます
ビュー– シート 2 のデータのビュー
プロセスは次のとおりです-ユーザーは手動でフィクスチャをシート1にドラッグアンドドロップし、フィクスチャのコピーを取り、シート2のデータで追加の列を追加するマクロ有効ボタンをクリップします
次に、最後のボタンをクリックして、「ビュー」シートにこのデータのビューを作成します。VnthLookup
ビュー シートが行っているのは、各セルに相対値を設定するために呼び出された定義済みモジュールを呼び出していることだけです。
問題
現在、各シートの VBA と数式は正常に動作します。ビューを作成するときに、セルをクリックしてキーボードの [戻る] ボタンをクリックして手動で計算を求めると、ビューが更新されて正常に動作します。ただし、ビューシート全体を再計算しようとすると、タイムアウトになり、計算を完了するのに永遠にかかります (最大 1 時間 + わずか 30 行、8 列ヘッダー)。
vnthlookup モジュールのコーディングは次のとおりです。
Public Function VlookupNth(MyVal As Variant, MyRange As Range, Optional ColRef As Long, Optional Nth As Long = 1)
Dim Count, i As Long
Dim MySheet As Worksheet
Count = 0
Set MySheet = Sheets(MyRange.Parent.Name)
If ColRef = 0 Then ColRef = MyRange.Columns.Count
For i = MyRange.Row To MyRange.Row + MyRange.Rows.Count - 1
If MySheet.Cells(i, MyRange.Column).Value = MyVal Then
Count = Count + 1
If Count = Nth Then
VlookupNth = MySheet.Cells(i, MyRange.Column + ColRef - 1).Value
Exit Function
End If
End If
Next i
VlookupNth = ""
End Function
そして、私のビューシートには、列Bから列Jまでのすべてのセルに次の式があります-シート2から要求している値に応じて、「X」は異なります。
=VlookupNth(1,Sheet2!C:AAA,X,2)
これに時間がかかる理由を理解するための助けをいただければ幸いです。
ps 説明を明確にする必要がある場合は、喜んでワークブックをお送りします。転送先アドレスを残してください。