Jump to content
Sign in to follow this  
bin123485

_Excel_RangeRead question

Recommended Posts

bin123485

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>


Local $oAppl = _Excel_Open()

Local $oWorkbook = _Excel_BookOpen($oAppl, @ScriptDir & "\1.xls")

Local $aResult = _Excel_RangeRead($oWorkbook, 1, "A1:C1", 2)
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeRead Example 2 - Cells A1:C1 of sheet 2")
Local $iData = $aResult[0]

Error Massage:

"E:AU3testtest.au3" (12) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:

Local $iData = $aResult[0]

Local $iData = ^ ERROR

why is that? $sResult is not an array?

Share this post


Link to post
Share on other sites
water

If there is no error returned by _Excel_RangeRead then it is an array. In fact a 2D array because you read multiple rows and columns. So you need two index variables to access the content of the array.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
bin123485

If there is no error returned by _Excel_RangeRead then it is an array. In fact a 2D array because you read multiple rows and columns. So you need two index variables to access the content of the array.

yes. it's a 2D array. Thanks.

Another question: I want to get the number of rows in the array $aResult. Ubound($aResult) is 65536. So how can I get the correct number?

Edited by bin123485

Share this post


Link to post
Share on other sites
water

Please check example 3 in the help file for function _Excel_RangeRead. It reads all used cells of a column by using

$oWorkbook.ActiveSheet.Usedrange.Columns("A:A")
Edited by water

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
bin123485

 

Please check example 3 in the help file for function _Excel_RangeRead. It reads all used cells of a column by using

$oWorkbook.ActiveSheet.Usedrange.Columns("A:A")

It works. Thank you very much.

Share this post


Link to post
Share on other sites
water

:)


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2018-09-01 - Version 1.3.4.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×