0

a) 我使用 excel 2007 中的名称管理器功能为 A3 到 G3 范围分配了一个名称“abc”

b) 我想从 VB.NET 访问此名称以在循环中分配值

这该怎么做?我是 VB.NET 的新手

Excel 工作簿将无法打开

我使用通常的 VBA 之类的代码进行了尝试。

For i = 1 To k

costs("abc").RefersToRange.Cells(3, i).value = "Cost" & i

错误:

1) 'Microsoft.Office.Interop.Excel.Names' 不能被索引,因为它没有默认属性。

2) 循环控制变量不能是属性或后期绑定索引数组。

提前感谢您的帮助。

4

2 回答 2

0

如果您使用 Excel 2007 或更高版本,则无需使用OpenXML SDK打开 Excel 即可创建和编辑 Excel 工作簿。SDK 不使用 Interop 访问 Excel,而是针对“原始”Excel 文件工作。我没有专门使用命名范围,但是有一个使用它们的示例,应该可以帮助您入门。

于 2012-07-02T15:56:56.600 回答
0

您可以按如下方式访问该范围。这会从excel 文件的第一个工作表中abc定义的命名范围中查找所有值:A3:G3

    'initialise the objects and open the file
    Dim xlApp As New Excel.Application
    Dim xlWorkBook As Excel.Workbook = xlApp.Workbooks.Open("C:\foo\book1.xlsx")
    Dim xlSheet As Excel.Worksheet = xlWorkBook.Worksheets(1)

    For i As Integer = 1 To 7
        xlSheet.Range("abc").Cells(1, i).value = "Cost" & i.ToString
    Next

    'save file
    xlWorkBook.Save()
    'close objects and clean up
    xlWorkBook.Close()
    xlApp.Quit()
    xlSheet = Nothing
    xlWorkBook = Nothing
    xlApp = Nothing
于 2012-07-02T20:27:45.123 回答