まあ、DataTable.ImportSheet方法は、単純に全体のシート(Excelファイルから一つのタブ/シート)をインポートし
感謝。限り、私は知っている、それはあなたのいくつかの行をインポートすることはできません。しかし
...
あなたが唯一の希望の行を処理するために、あなたのコードを設定することができます。自動ではなくプログラムでループを制御したい場合は、最初にOneIterationのみを実行するようにアクション(またはテスト)を設定します。アクションが「すべての行で実行」に設定されている場合は、シートの最後の行が何かデータであるかどうかを確認してから、その繰り返しを実行します。したがって、最初の4行にデータがあり、100行にデータがあるシートがあると、QTPはデータが空白であっても100回の繰り返しを実行しようとします。
アクションの反復設定を設定するには、フローダイアグラムでアクションを右クリックし、アクションコールのプロパティを選択します。テスト全体の反復を設定するには、Start楕円を右クリックしてプロパティを選択し、Runを選択して設定を探します。
次に、これと同様のループを作成します。私は実際に私のすべてのシートに何
'ImportedSheetTabName = the name of the tab in Excel, you specified it during importsheet
for Row = 1 to DataTable.GetSheet(ImportedSheetTabName).GetRowCount
DataTable.GetSheet(ImportedSheetTabName).SetCurrentRow Row
if DataTable("script_ID",ImportedSheetTabName) = "1" 'based on your question
'do stuff with the row
'this is where you would put ALL of the work to be done...
'it can be as long as you need.
else
'do nothing. this will ignore all rows that are not Script ID = 1
end if
next
は(QTPで使用するために)単にでXを持っている「データ」と呼ばれる列を含めることですその行にデータシートデータが含まれている場合私は文字通り他の数式や計算(データ作成用のもの)、コメント、リストなどを含む行間の任意のものに置くことができます。手でループを制御するので無視されます。
だから、基本的に、あなたはシートを開き、データテーブルに直接書き込むことによってQTPのDataTableのに-relevant-データをコピーするために、Excelのオートメーションオブジェクトを使用しています。これはすばらしいことです。完了したらDataTableをエクスポートすると、カスタマイズされたバージョンのデータシートが作成されるためです。したがって、すべてのものを関数ライブラリにカプセル化して、テストを適切に開始する前にQTPのデータシートをプリロードすることができます。明らかに高度なテクニック:) –