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 ワークブックを作成および編集できます。Interop を使用して Excel にアクセスする代わりに、SDK は "生の" 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 に答える