Вы не можете иметь два следующих возврата в функции, потому что функция завершится, когда будет выполнен первый возврат. Второй подход, который вы попробовали, - это создать один импорт для каждой модели.
Проблема, с которой вы столкнулись, состоит в том, что вы не можете импортировать файл дважды в запросе, , проверьте эту проблему, обсуждая ее . Вы должны сначала загрузить файл, а затем использовать этот файл в обоих вызовах.
Эта функция дает имя NamedRange, к которому принадлежит ячейка:
Public Function CellName(oCell As Range) As Variant
Dim oName As Name
For Each oName In ThisWorkbook.Names
If oName.RefersToRange.Parent Is oCell.Parent Then
If Not Intersect(oCell, oName.RefersToRange) Is Nothing Then
CellName = oName.Name
Exit Function
End If
End If
Next
CellName = CVErr(xlErrNA)
End Function
Она перебирает все имена в книгу, а затем для каждого имени она проверяет, относится ли она к какой-либо вещи в этом параметре ввода листа. Если это так, то он проверяет, пересекаются ли входная ячейка и ярости, указанные именем. Если они это сделают, он возвращает имя диапазона.
Кажется невозможным, что странно. Можно подумать, что функция cell () должна предоставить способ получить имя, но это не так. Облом.
Это будет работать при самых основных обстоятельствах:
Public Function CellName(cel As Range) As Variant
Dim nm As Name
For Each nm In Names
If nm.RefersTo = "=" & cel.Parent.Name & "!" & cel.Address Then
CellName = nm.Name
Exit Function
End If
Next
CellName = CVErr(xlErrNA)
End Function
Это не будет работать, если ячейка является частью именованного диапазон, он не будет отображать несколько имен для ячейки, он не будет работать для ячеек, включенных в именованные формулы (например, диапазоны = OFFSET ()
).
"=" & cel.Parent.Name & "!" & cel.Address
вещь тоже довольно неуклюжая. Там может быть лучший способ сделать проверку. Создание объекта Range из RefersTo и использование Intersect () может работать.
В Excel есть функция Cell (), которую вы можете получить определенные свойства от.
Вы можете использовать = Cell ("строка", K9) и получить обратно номер строки 9, и есть эквивалентный параметр "col", но он возвращает номер столбца (11), а не букву.