Mac Excel 2011 VBA UDF не работает - кажется, проблема в команде SET или FIND
Я конвертирую электронную таблицу из Excel 2007 в Mac Excel 2011. Я часами пытался решить свою проблему, но безуспешно, поэтому любая помощь будет принята с благодарностью!
Этот UDF находит строку в диапазоне, затем возвращает значение на одну ячейку ниже найденной ячейки. Команда SET ничего не возвращает в версии для Mac, но работает в Excel 2007.
Function FindRng(Fnd As String)
Application.Volatile
Dim Rng As Range
If Fnd = "" Then
FindRng = 0
GoTo 109
End If
With Sheets("Matrix").Range("G2:FZ13")
Set Rng = .Find(What:=Fnd, _
After:=.Cells(2, 7), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
FindRng = Sheets("Matrix").Cells(Rng.Row + 1, Rng.Column).Value
Else
FindRng = 0
End If
End With
109 End Function
1 ответ
Find не работает в UDF, вызванной из ячейки в 2011 году (та же проблема, которая существовала в версиях для ПК до Office XP), поэтому вам придется либо зацикливаться и тестировать каждую ячейку (загрузка данных в массив должна быть быстрее, чем чтение по ячейкам) или обрабатывать по одной строке за раз, например, с помощью application.match.