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)循环控制变量不能是属性或后期索引数组。
提前感谢您的帮助。
答案 0 :(得分:0)
如果您使用的是Excel 2007或更高版本,则可以使用OpenXML SDK创建和编辑Excel工作簿,而无需打开Excel本身。 SDK不使用Interop访问Excel,而是使用“原始”Excel文件。我没有专门使用命名范围,但有一个sample使用它们,应该可以帮助你开始。
答案 1 :(得分: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