1

pywin32を使用して、複数のシートを含むExcelブックの読み取りと書き込みを行っています。定義された名前でセルの値にアクセスしたいと思います。使用できます

myWorkbook.Sheets(mySheet).Range("myCellName").Value

ただし、名前がどのシートに定義されているかは常にわかりません。今のところ、range(sheet0、sheetx)を使用してすべてのシートを試すことで、この問題を回避しています。私が使用できると思った別の機能があります。それはワークブックメソッドです。

myWorkbook.Names("myCellName").Value

ただし、セル「myCellName」に格納されている値を返すのではなく、セルのシートとセル参照を返します。

u"='mySheet2'!$D$37"

定義された名前の値に直接アクセスするためのより洗練された方法はありますか?それがどのシートにあるかを知らなくてもセルですか?

4

2 に答える 2

1

あなたはで値を得ることができます

MyWorkbook.Names("myCellName").RefersToRange

そして、fwiwで名前シートを取得できます

MyWorkbook.Names("myCellName").RefersToRange.Parent.Name

于 2012-11-28T10:57:01.083 に答える
0

brettdjのメソッドは、定義名に範囲参照が含まれている場合はうまく機能しますが、定義名に数式が含まれている場合は失敗する可能性があります。より一般的な方法は、Evaluate
Application.evaluate("myCellName")
または
[myCellName]
(pywin32からこれらを実行できると仮定して)を使用することです。

于 2012-11-28T11:59:04.690 に答える