My apologies for bad transcription. It is hard moving from computer to computer, copying and typing. I was hoping it was obvious what I was trying to do. The old way was what is shown above. The new way I am trying to find is replacing the search by row and cell and just use a Find. So the new code would be
use strict;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
my $Excel = Win32::OLE->new('Excel.Application','Quit') or die "Cannot
+ open Excel\n";
my $Book = $Excel->workbooks->Open(FileName => "c:/foo.xlsx", ReadOnly
+ => 1) or die "Cannot open Spreadsheet\n";
my $num_sheets = $Book->Sheets->Count;
for my $sheet_num ( 1 .. $num_sheets ) {
my $Sheet = $Book->worksheets( $sheet_num );
my $max_col = $Sheet->UsedRange->SpecialCells( xlCellTypeLastCell
+)->Column;
my $max_row = $Sheet->UsedRange->SpecialCells( xlCellTypeLastCell
+)->Row;
my $loc = $Sheet->UsedRange->Cells->Find({What=>"cabbage"});
}
Running in debug gives "Undefined subroutine &main:: called at (eval 14)D:/software/Perl/lib/perl5db.pl:646 line 2, <$lh> line 7."
Running without debug gives "Can't use string ("") as a subroutine while "strict refs" in use at search.pl line 12, <$lh> line 7."
Again, I am trying to do my best to transcribe.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link or
or How to display code and escape characters
are good places to start.
|