我正在使用pywin32来读取和写入具有多个工作表的Excel工作簿。我想通过其定义的名称访问单元格值。我可以用
myWorkbook.Sheets(mySheet).Range("myCellName").Value
但是,我并不总是知道名称定义在哪个工作表上。现在,我通过使用范围(sheet0,sheetx)来尝试每个工作表来解决这个问题。 我认为可以使用另一个函数,即工作簿方法
myWorkbook.Names("myCellName").Value
但不是返回存储在单元格“myCellName”中的值,而是返回单元格的工作表和单元格引用,比如说
u"='mySheet2'!$D$37"
是否有一种更优雅的方式来直接访问已定义名称的值 - 单元格而不知道它在哪个表单上?
答案 0 :(得分:1)
您可以使用
获取值 MyWorkbook.Names("myCellName").RefersToRange
然后你可以用
获得名单 MyWorkbook.Names("myCellName").RefersToRange.Parent.Name
答案 1 :(得分:0)
brettdj的方法很有效,但如果定义的名称包含公式,则可能会失败。更通用的方法是使用评估
Application.evaluate("myCellName")
或者[myCellName]
(假设您可以从pywin32执行这些操作)