2014-10-16 1 views
-1

Пожалуйста, помогите мне !!!!Циклические значения от листа Excel в UFT

я эта функция, которая вызывает данные из внешней книги Excel и помещает значение в тестируемом приложение, мне это нужно для перебора всех значений в листе строке первенствовать по строкам

Ниже приводится ссылка к фреймворку и функции, которую я пытаюсь использовать, и нуждаться в ней, чтобы перебирать значения в листе excel. PLS HELP.

ОГРОМНОЕ СПАСИБО

http://www.automationrepository.com/2013/08/designing-hybrid-framework-in-qtp-part-3/

'================================================================================ 
'Function name - fnFetchDataFromExcelSheet 
'Description - This function retrieves the data from the excel sheet based upon the column name 
'================================================================================ 
Function fnFetchDataFromExcelSheet(strColumnName) 

    Dim sColValue 

    'Initialize the return the value to "empty" string 
    fnFetchDataFromExcelSheet = "empty" 

    'Add a new blank sheet into the QTP data table 
    'Excel data will be copied into this blank sheet 
    DataTable.AddSheet("dtDataSheet") 

    'Import the data from the excel sheet into the QTP data table 
    DataTable.ImportSheet sExcelWorkbookPath, sSheetName, "dtDataSheet" 

    'Find the value from the data table 
    sColValue = DataTable.Value(strColumnName, "dtDataSheet") 

    'Return the value back to the calling function 
    fnFetchDataFromExcelSheet = sColValue 

    'Remove Reference 
    DataTable.DeleteSheet("dtDataSheet") 

End Function 

ответ

1

Эта функция, которую вы выложили с сайта не исправить логически!

Во-первых, вам нужно передать имя функции sSheetName & strColumnName.

Даже если мы проигнорируем, что это ошибка по ошибке или Предположим, что sSheetName является глобальной переменной (поэтому нужно передать это функции). Для каждого вызова этой функции он импортирует лист в datatable, получает значение в первой строке для данной ячейки и снова удаляет ее (!!!). Это сильно повлияло бы на производительность. Вы также получите одинаковое значение каждый раз!

Я бы сказал, Игнорируйте функцию. Следуй этим шагам.

1) Сначала вам нужно импортировать excel в свой datatable.

DataTable.ImportSheet /path/to/excel, /name/of/the/sheet, "dtDataSheet" 

/путь/к/Excel &/имя/из// лист должен быть в ""

2) получить счетчика строк

intRowcount=DataTable.GetSheet("dtDataSheet").RowCount 

3) Используйте простой Для петля

For iLoop = 1 To intRowcount 

    DataTable.GetSheet("dtDataSheet").SetCurrentRow iLoop 
    Msgbox DataTable.value("ColumnName","dtDataSheet") 'Replace the msgbox with what you want 

Next 

 Смежные вопросы

  • Нет связанных вопросов^_^