Еще, когда делаю изменение в искомом листе -это не отображается в "Исходнике".
Сделайте функцию "волатильной" : Application.Volatile - будет пересчитыватся при каждом "чихе" [vba]
Код
Function VLookUpAllSheets(vCriteria As Variant, rTable As Range, lColNum As Long, Optional iPart As Integer = 1) As Variant Dim rFndRng As Range Application.Volatile If iPart <> 1 Then iPart = 2 For i = 1 To Worksheets.Count If oDic.Exists(Sheets(i).Name) Then With Sheets(i) Set rFndRng = .Range(rTable.Address).Resize(, 1).Find(vCriteria, , xlValues, iPart) If Not rFndRng Is Nothing Then VLookUpAllSheets = rFndRng.Offset(, lColNum - 1).Value Exit For End If End With End If Next i End Function
Еще, когда делаю изменение в искомом листе -это не отображается в "Исходнике".
Сделайте функцию "волатильной" : Application.Volatile - будет пересчитыватся при каждом "чихе" [vba]
Код
Function VLookUpAllSheets(vCriteria As Variant, rTable As Range, lColNum As Long, Optional iPart As Integer = 1) As Variant Dim rFndRng As Range Application.Volatile If iPart <> 1 Then iPart = 2 For i = 1 To Worksheets.Count If oDic.Exists(Sheets(i).Name) Then With Sheets(i) Set rFndRng = .Range(rTable.Address).Resize(, 1).Find(vCriteria, , xlValues, iPart) If Not rFndRng Is Nothing Then VLookUpAllSheets = rFndRng.Offset(, lColNum - 1).Value Exit For End If End With End If Next i End Function