Jump to content

Recommended Posts

Posted

Hello people,

I would like some help with my code. I'm trying to get the 'used range of cells' from a particular column, based on which a for loop has to be run.  The thing is, this 'used range' gives me the correct value with sheet 2 of an excel sheet, while the same procedure is not working good with sheet 1. Here is the code:

Global $eBook = _Excel_BookAttach( @DesktopDir & "\New Microsoft Excel Worksheet.xlsx")
Global Const $xlUp = -4162

$eBook.Sheets(1).Select
With $eBook.ActiveSheet ; process active sheet
$oRangeLast = .UsedRange.SpecialCells($xlCellTypeLastCell) 
$iRowCount = .Range(.Cells(1, 1), .Cells($oRangeLast.Row, $oRangeLast.Column)).Rows.Count 
$iLastCell = .Cells($iRowCount , "B").End($xlUp).Row 
ConsoleWrite("Last used cell in column for part number " & "B1:B" & $iLastCell & @CRLF)
EndWith

$Count = $eBook.Sheets(1).UsedRange.Rows.Count
Sleep( 1000)
$range = "B1:B"&$Count
$process = _Excel_RangeRead($eBook,1,$range)


$eBook.Sheets(2).Select
With $eBook.ActiveSheet ; process active sheet
$oRanLast = .UsedRange.SpecialCells($xlCellTypeLastCell) 
$iRowCount2 = .Range(.Cells(1, 1), .Cells($oRanLast.Row, $oRanLast.Column)).Rows.Count 
$iLastCells2 = .Cells($iRowCount2 , "B").End($xlUp).Row 
ConsoleWrite("Last used cell in column for sheet 2 " & "B1:B" & $iLastCells2 & @CRLF)
EndWith

The entire process with sheet 2 of the excel is working perfect.  But with Sheet 1, the result is always 'B1:B1', even though the column B is filled upto 5 rows.

Any suggestions??

Thanks in advance :) 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...