Как сказал Джон - ваш опубликованный код не приводит к сообщаемой вами ошибке.
Я думаю, что проблема с вашим кодом:
Dim Linkdescrip As String
должно быть Dim Linkdescrip As Long
.
Превратился в рабочий код:
?thisworkbook.Worksheets("Ref").cells(2,"7")
возвращает вашу ошибку.
?thisworkbook.Worksheets("Ref").cells(2,7)
возвращает значение из диапазона G2
.
Сказав это, ядумаю, я вижу, что вы ищете:
Столбец A
листа Ref
заполнен числами, вы хотите найти в этом столбце определенное число, и, если он найден, найти значения из столбцов G
& H
в этом ряду.
Этот код найдет числовое значение 1
в столбце A
листа с именем Ref
в книге, содержащей код (ThisWorkbook
).Затем он вернет значения из столбцов G:H
этой строки или вернет пустую строку.
Sub Test()
Dim MyRef As String
MyRef = FinRef(ThisWorkbook.Worksheets("Ref"), 1)
End Sub
Public Function FinRef(InputSheet As Worksheet, Ref_ID As Long) As String
Dim rFound As Range
With InputSheet
Set rFound = .Columns(1).Find( _
What:=Ref_ID, After:=.Cells(1, 1), _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not rFound Is Nothing Then
FinRef = rFound.Offset(, 6) & rFound.Offset(, 7)
End If
End With
End Function