2016-12-12 1 views
1

Grâce à UFT j'essaye de lire les lignes d'une feuille excel (peut être n'importe quel nombre de lignes basé sur l'entrée de l'utilisateur). Je veux passer ces valeurs (sont des valeurs de chaîne) à une autre fonction.Essayer de lire et stocker les valeurs des lignes excel vers les variables/tableaux en utilisant VBscripting dans UFT

Je suis coincé avec le code ci-dessous qui donne sur l'erreur indice de gamme à la ligne 'fieldvalueChar (j-1) = ws.cells (j, 1)'

Dim value 
Dim lRow 
Dim fieldvalue 
Dim fieldvalueChar() 
'Open the spreadsheet document for read-only access. 
Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("Path\Input.xlsx") 

Set ws = objWorkbook.Sheets("Sheet1") 
rowcount = ws.usedrange.rows.count 

for j = 1 to rowcount 
    fieldvalueChar(j-1) = ws.cells(j,1) 

next 

MsgBox(fieldvalueChar(0)) 
MsgBox(fieldvalueChar(1)) 

Je cherche simple solution puisque l'Excel aura toujours une colonne et changer dynamiquement le nombre de lignes en fonction de l'entrée de l'utilisateur dans la feuille Excel. Je pouvais voir quelques codes VBA en ligne mais pas VBS

+0

Avez-vous eu la chance d'essayer, fonctionnalité de la table de données UFT – Barney

+0

N'a pas encore essayé –

Répondre

3

C'est parce que vous n'avez pas initialisé le tableau. Vous pouvez essayer quelque chose comme ça

Dim value 
Dim lRow 
Dim fieldvalue 
ReDim fieldvalueChar(1) ' Just Declare an array of 1, Since array size has to be constant when declaring 

'Open the spreadsheet document for read-only access. 
Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\saravananp\Desktop\Items.xls") 

Set ws = objWorkbook.Sheets("Items") 
rowcount = ws.usedrange.rows.count 

' Redefine array size dynamically based on number of Rows 
ReDim fieldvalueChar(rowcount) 

for j = 1 to rowcount 
    fieldvalueChar(j-1) = ws.cells(j,1) 
next 


MsgBox(fieldvalueChar(0)) 
MsgBox(fieldvalueChar(1)) 

D'autre part, vous pouvez également essayer les données.

+0

Merci beaucoup Prageeth. Cela a fonctionné! –

+0

Mon plaisir. De plus, un indice hors limite est renvoyé lorsqu'un élément de tableau non existant est accédé. Ex: Si un tableau est de taille 5, si vous accédez à 6, vous obtiendrez cette erreur. Dans votre cas, votre taille est 0, donc vous obtiendrez cette erreur si vous essayez d'accéder à un index. Cochez cette case si vous souhaitez plus de détails: https://msdn.microsoft.com/fr-fr/library/aa264519(v=vs.60).aspx –

+0

Merci beaucoup –