自动化Excel从Python获取“TypeError:'unicode'对象不可调用”Range.Address上

根据标题,当我在Python 2.6中运行下面的代码时,我得到了下面的错误:

打印范围。地址(RowAbsolute = False,ColumnAbsolute = False)“

我知道错误的意思,但MSDN页面( http://msdn.microsoft.com/en-us/library/aa174749(v=office.11​​).aspx )表示这是有效的,并有一个例子。 我已经在EXCEL VBA中试过了,它可以工作。

TypeError:“unicode”对象不可调用

有任何想法吗?

谢谢。

Doanld

import win32com.client xlApp = win32com.client.DispatchEx('Excel.Application') xlApp.Visible = True objWkb = xlApp.Workbooks.Add() objSht = objWkb.Worksheets(1) objSht.Cells(2,2).Value = '1' objSht.Cells(2,3).Value = '2' range = objSht.Cells(2,4) range.Value = '=%s+%s' % (objSht.Cells(2,2).Address, objSht.Cells(2,3).Address) range.AddComment('Test Comment') print range.Address print range.Address(RowAbsolute=False, ColumnAbsolute=False) objWkb.Close(SaveChanges=False) #to avoid prompt xlApp.Quit() xlApp.Visible = 0 #must make Visible=0 before del self.excelapp or EXCEL.EXE remains in memory. del xlApp 

Range.Address是一个参数化的属性 。 它在像属性一样访问时提供一个值,但也可以像调用参数的方法一样调用。 PyWin32不直接支持参数化属性。 它通过为每个支持参数的属性提供一个GetXXXXX方法来解决这个问题。 使用:

 range.GetAddress(RowAbsolute=False,ColumnAbsolute=False) 

它可以使用或不使用关键字。

使用任一:

 range.GetAddress() range.Address 

阅读财产。