0

私は少しの間これを行う方法を理解しようとしてきました..これが私の状況です:

私はExcelスプレッドシートを持っています(これを「workbook.xls」と呼びましょう。スクリプトに使用する必要がある2つのシートがあります。1つのシートにはデータ列「columnA」があり、セルA2を配置しようとしています(A1はヘッダー) を QTP スクリプトに追加して使用します。

この特定の値を使用して、いくつかのデータを処理し、次のセル、A3 を使用して別の手順/プロセスを処理できるようにしたい..これは可能ですか?

他の言語では、for ループを使用してデータを反復処理できることはわかっていますが、データを処理しようとしてからループに戻ってデータを取得することに行き詰まっています。

例えば:

Excel では、A2 が「1」、A3 が「2」の場合があります。A1 の値をブラウザの入力フィールドに入力できるようにしたい.次に、この値を使用していくつかのアクション (クリック、別のファイルへの書き込みなど) を実行できるようにしたい..次に、移動したい値 A3 に追加し、A3 の値を前と同じ入力フィールドに入力してから、他のアクションを実行します (これは、A2 で行ったことではない可能性があります)。このシナリオをどのように達成できるか疑問に思っています。

前もって感謝します。

4

2 に答える 2

0

はい、可能です。私があなたの質問を正しく理解したと仮定すると、次のようなことができます:

Set xl = CreateObject("Excel.Application")
xl.Visible = True  'set to False for production

Set wb = xl.Workbooks.Open("C:\path\to\workbook.xls")
Set ws = wb.Sheets(1)

firstRow = ws.UsedRange.Rows(1).Row
lastRow  = firstRow - 1 + ws.UsedRange.Rows.Count

For i = firstRow+1 To lastRow
  val = ws.Cells(i, 1).Value   'get value from cell
  'do stuff with val
Next

wb.Close
xl.Quit
于 2013-08-22T20:56:50.393 に答える
0

テストの DataTable は Excel スプレッドシートです。データを QTP のテストの DataTable に (デフォルト シートで) インポートするか、独自のシートを追加してから、コードでアクセスすることができます。

Set sheet = DataTable.GetSheet "Sheet Name"
numRows = sheet.GetRowCount

For index = 0 To numRows
    value = sheet.GetParameter(index)
    'Do something
Next
于 2013-08-22T20:59:00.083 に答える