Получение Ячейки называет в Excel

Вы не можете иметь два следующих возврата в функции, потому что функция завершится, когда будет выполнен первый возврат. Второй подход, который вы попробовали, - это создать один импорт для каждой модели.

Проблема, с которой вы столкнулись, состоит в том, что вы не можете импортировать файл дважды в запросе, , проверьте эту проблему, обсуждая ее . Вы должны сначала загрузить файл, а затем использовать этот файл в обоих вызовах.

16
задан Manoj 9 April 2009 в 07:10
поделиться

4 ответа

Эта функция дает имя 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  

Она перебирает все имена в книгу, а затем для каждого имени она проверяет, относится ли она к какой-либо вещи в этом параметре ввода листа. Если это так, то он проверяет, пересекаются ли входная ячейка и ярости, указанные именем. Если они это сделают, он возвращает имя диапазона.

8
ответ дан 30 November 2019 в 21:37
поделиться

Это будет работать при самых основных обстоятельствах:

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 () может работать.

0
ответ дан 30 November 2019 в 21:37
поделиться

В Excel есть функция Cell (), которую вы можете получить определенные свойства от.

Вы можете использовать = Cell ("строка", K9) и получить обратно номер строки 9, и есть эквивалентный параметр "col", но он возвращает номер столбца (11), а не букву.

0
ответ дан 30 November 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: