根据标题,当我在Python 2.6中运行以下代码时,我在线上得到以下错误:
print range.Address(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
答案 0 :(得分:4)
Range.Address
是参数化属性。它像属性一样访问时提供一个值,但也可以像带参数的方法一样调用。 PyWin32不直接支持参数化属性。它通过为每个支持参数的属性提供GetXXXXX方法来解决这个问题。使用:
range.GetAddress(RowAbsolute=False,ColumnAbsolute=False)
可以使用或不使用关键字。
使用:
range.GetAddress()
range.Address
阅读该物业。