0

特定のセルに入力された「範囲に名前を付ける」値を取得する必要があります。

Excelで(A4、B4)セルの「範囲に名前を付ける」値を入力しました。セル値を読み取るには、sh.cell(row、col)を使用しますが、そのセルの名前範囲値を取得する方法。

やり方がわからない…

私を助けて..事前に感謝

4

2 に答える 2

1

残念ながら、コメントできるほどの担当者がいないので、あなたの質問から理解できる範囲で最善を尽くします。

したがって、これが正しければ、ワークシートに名前付き範囲があり、sh.Range("A4:B4") によって参照される範囲の名前は「name_a_range」です (アンダースコアを含めることができないため、アンダースコアを含めました)名前にスペース)。

Sheets.Cells(row, col).Value から値を取得できますが、名前付き範囲でこれを行う必要があります。

わかりました、これを行うには:

    Dim valA as Variant, valB as Variant
    Dim valArray() as Variant
    '' To get the value in Cell "A4"
    valA = sh.Range("name_a_range").Cells(1,1).Value

    '' To get the value in Cell "B4"
    valB = sh.Range("name_a_range").Cells(1,2).Value

    '' Or if you have a Variant() array already Dim'ed (like above)
    valArray = sh.Range("name_a_range").Value

Worksheet の Range オブジェクトは、次のいずれかを取ることができます。

    '' Expression for a range: "A4" to "B4" , using Cells
    sh.Range(sh.Cells(4,1),  sh.Cells(4,2)) 

    '' Expression for a range: "A4" to "B4" , using xlA1 format
    ''  *Which is the most familiar
    sh.Range("A4:B4")

    '' Expression for a range: "A4" to "B4" , using name
    sh.Range("PreviouslyNamedRange")

どの範囲でも、それは独自の配列 (位置 1 から開始) と考えることができます。範囲のサイズ (次元) が不明な場合は、組み込みの Range 関数を使用できます。

    sh.Range("name_a_range").Rows.Count '' returns 1
    sh.Range("name_a_range").Column.Count '' returns 2

タイトルの Python の側面については、まったく同じ構文を使用します。

ただし、xlrd は使用せず、代わりに win32com.client を使用して Python で Excel を操作しています。

    from win32com.client import Dispatch
    app_xl = Dispatch("Excel.Application")
    wb = app_xl.Workbooks.Open("Path\\To\\Your\\Workbook.xlsx")
    range = wb.Sheets(1).Range("name_a_range").Value

たとえば、スプレッドシートの 1 つでこれを実行しました。

    >>> from win32com.client import Dispatch
    >>> app_xl = Dispatch("Excel.Application")
    >>> wb = app_xl.Workbooks.Open("C:\***\***\excel_vba_tests\getinfo.xlsx")
    >>> rangeValues = wb.Sheets("Summary").Range("avgVolume").Value
    >>> rangeValues
    ((u'Avg/Wk',), (Decimal('791517.25'),), (Decimal('796369'),), (Decimal('769922.8846'),), (Decimal('743311.549'),))

ここで、ワークブック「getinfo.xlsx」を開き、「Summary」という名前のシートから、名前付き範囲「avgVolume」のすべての値を取得できました。

これは役に立ちましたか / あなたが探していたものですか? あなたの質問が正確に何であるかがよくわからなかったので、できるだけ多くのポイントを獲得したと思いました.

于 2012-10-25T19:56:48.447 に答える