Why this script doesn't work?

Hi all,

I copy a script from WIN32OLE documentation and run it. I find that Ruby
complains it at line cells = sheets.cells("A1:A5").

Do I miss something?

Thanks,

Li

···

##
require 'win32ole'

  excel = WIN32OLE.new('Excel.Application')
  excel.Visible="True"

   book = excel.workbooks.add
   sheets = book.worksheets(1)

   cells = sheets.cells("A1:A5")

   cells.each do |row|
     row.value = 10
   end

##output

ruby test3.rb

test3.rb:13:in `method_missing': cells (WIN32OLERuntimeError)
    OLE error code:80020005 in <Unknown>
      <No Description>
    HRESULT error code:0x80020009
      Exception occurred. from test3.rb:13

Exit code: 1

--
Posted via http://www.ruby-forum.com/\.

Li Chen wrote:

Hi all,

I copy a script from WIN32OLE documentation

Where is the Win32OLE documentation located, please? That way, others can
confirm your effort and duplicate your experiment (if they are running
Windows).

···

--
Paul Lutus
http://www.arachnoid.com

here are some win32ole doc:

<http://www.ruby-doc.org/stdlib/libdoc/win32ole/rdoc/index.html&gt;

http://www.ruby-doc.org/stdlib

···

2006/12/4, Paul Lutus <nospam@nosite.zzz>:

Li Chen wrote:

>
> Hi all,
>
> I copy a script from WIN32OLE documentation

Where is the Win32OLE documentation located, please? That way, others can
confirm your effort and duplicate your experiment (if they are running
Windows).

--
Paul Lutus
http://www.arachnoid.com

Paul Lutus wrote:

Where is the Win32OLE documentation located, please? That way, others
can
confirm your effort and duplicate your experiment (if they are running
Windows).

It is here

http://www.ruby-doc.org/stdlib/

WIN32OLE#each{|i|...} or each(WIN32OLE)in Methods section

Iterates over each item of OLE collection which has IEnumVARIANT
interface.

   excel = WIN32OLE.new('Excel.Application')
   book = excel.workbooks.add
   sheets = book.worksheets(1)
   cells = sheets.cells("A1:A5")
   cells.each do |cell|
     cell.value = 10
   end

Li

···

--
Posted via http://www.ruby-forum.com/\.

Li Chen wrote:
...

   cells = sheets.cells("A1:A5")

Try:
   cells = sheets.Range("A1:A5")

Cheers
Chris