VB.net Office Solution - Доступ к значению в именованном диапазоне на рабочем листе - PullRequest
1 голос
/ 01 сентября 2011

Я работаю над преобразованием проекта Excel VBA в решение VB.net Office. В VBA доступ к именованному диапазону на листе был довольно легким.
Sheet1.Range ( "NamedRange")
даст вам значение в этой ячейке.

В VB.net я пробовал несколько разных вещей, которые заканчивались неудачей.

Я начал здесь. http://msdn.microsoft.com/en-us/library/aa168292(v=office.11).aspx#excelobj_link9

Я использую один из шаблонов документов Visual Studio Excel 2010, и мне удалось установить значение в именованном диапазоне на листе. Шаблон создает класс для каждой вкладки на рабочем листе, поэтому я смог это сделать.

Me.Range("A5").Value

У меня проблемы с тем, как получить доступ к диапазону на рабочем листе, в частности, я не могу понять, какие объекты мне нужно создать, прежде чем я смогу получить доступ к рабочему листу. Вот что не работает :)

Public Sub GetInputs()
    Dim XlSheet1 As Excel.Worksheets
    Xlval = XlSheet1("Sheet1").Range("NamedRange").Value

Это оставляет меня с нулевой ссылкой ... Я пробовал несколько других вещей и получил несколько других ошибок. Любой толчок в правильном направлении будет высоко ценится.

1 Ответ

1 голос
/ 01 сентября 2011

Следующий код компилируется и выполняется в отдельном модуле кода.Ключ использует объект Globals для доступа к объектам приложения Excel:

Dim xlWorksheet As Excel.Worksheet
Dim xlNamedRange As Excel.Range
Dim xlVal As Object

xlWorksheet = Globals.ThisWorkbook.Worksheets("Sheet1")
xlNamedRange = xlWorksheet.Range("NamedRange")
xlVal = xlNamedRange.Value
MessageBox.Show(xlVal)
...