特定のセルに入力された「範囲に名前を付ける」値を取得する必要があります。
Excelで(A4、B4)セルの「範囲に名前を付ける」値を入力しました。セル値を読み取るには、sh.cell(row、col)を使用しますが、そのセルの名前範囲値を取得する方法。
やり方がわからない…
私を助けて..事前に感謝
特定のセルに入力された「範囲に名前を付ける」値を取得する必要があります。
Excelで(A4、B4)セルの「範囲に名前を付ける」値を入力しました。セル値を読み取るには、sh.cell(row、col)を使用しますが、そのセルの名前範囲値を取得する方法。
やり方がわからない…
私を助けて..事前に感謝
残念ながら、コメントできるほどの担当者がいないので、あなたの質問から理解できる範囲で最善を尽くします。
したがって、これが正しければ、ワークシートに名前付き範囲があり、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」のすべての値を取得できました。
これは役に立ちましたか / あなたが探していたものですか? あなたの質問が正確に何であるかがよくわからなかったので、できるだけ多くのポイントを獲得したと思いました.