[python-win32] Excel and OLEObjects
Bob Gailer
bgailer at alum.rpi.edu
Mon Oct 30 19:24:56 CET 2006
Mark Norley wrote:
> Hello
>
> I'm trying to insert an object into an Excel sheet with the following code:
>
> import win32com.client
> xlapp = win32com.client.Dispatch("Excel.Application")
> xlapp.Visible = 1
> xlapp.Workbooks.Add()
> xlapp.ActiveSheet.OLEObjects.Add(FileName = "C:\\mytext.tx"', Link=False,
> DisplayAsIcon=False).Select
>
> But I get: AttributeError: 'function' object has no attribute 'Add'
>
The clue is "'function' object". This is telling you that
xlapp.ActiveSheet.OLEObjects is a function. So try calling the function
and applying Add to what the function returns:
xlapp.ActiveSheet.OLEObjects().Add(....
The "problem" with VBA is that Function calls that take no arguments also have no ().
> If I record a macro in Excel for what I want to do it comes out as:
>
> Sub Macro1()
> '
> ' Macro2 Macro
> ' Macro recorded 30/10/2006 by Mark
> '
>
> '
> ActiveSheet.OLEObjects.Add(Filename:="C:\mytext.txt", Link:=False, _
> DisplayAsIcon:=False).Select
> End Sub
>
> I'm a complete COM noob...what am I doing wrong?
>
> Cheers
> Mark
>
> WinXP SP2
> Python 2.4.2
> Pywin32 210
> Excel 2003
>
>
>
--
Bob Gailer
510-978-4454
More information about the Python-win32
mailing list