0
我需要按列升序排列,然后升序升序,然后升序升序,列升序升序,然后升序升序,然后升序升序。仅仅使用QTP,我似乎无法使Excel正确排序数据。如何让QTP和Excel正确排序?
我想要什么:
Table 1: | a | b | c | d | e | f | g | h | --------------------------------------------------------------------- | 1 | BE | blank | 51 stuff | 1 | BE | blank | 51 stuff | | 1 | BE | blank | 100 stuff | 1 | BE | blank | 100 stuff | | 1 | BE OF A | blank | 121 stuff | 1 | BE OF A | blank | 121 stuff | | 1 | BE OF A | blank | 200 stuff | 1 | BE OF A | blank | 200 stuff | | 2 | SEA | blank | 5 stuff | 1 | SEA | blank | 5 stuff |
我该怎么来代替:
Table 2: | a | b | c | d | e | f | g | h | --------------------------------------------------------------------- | 1 | BE | blank | 100 stuff | 1 | BE OF A | blank | 121 stuff | | 1 | BE | blank | 51 stuff | 1 | BE OF A | blank | 200 stuff | | 1 | BE OF A | blank | 121 stuff | 1 | BE | blank | 100 stuff | | 1 | BE OF A | blank | 200 stuff | 1 | BE | blank | 51 stuff | | 2 | SEA | blank | 5 stuff | 1 | SEA | blank | 5 stuff |
E栏到h被填充和排序第一。通常,这些列的单元格按表1中列出的正确排序顺序进行填充。但是,有些情况下排序顺序不正确,但很少见。可能100,000次尝试中有1次会使用未排序的数据填充。
列a到d最后被填充和排序。这些列的单元格会以一种偶然的方式进行填充。表3说明了一个非常简单的最终结果,而不强制排序。
Table 3: | a | b | c | d | e | f | g | h | --------------------------------------------------------------------- | 1 | BE | blank | 100 stuff | 1 | BE | blank | 51 stuff | | 1 | BE | blank | 51 stuff | 1 | BE | blank | 100 stuff | | 1 | BE OF A | blank | 121 stuff | 1 | BE OF A | blank | 121 stuff | | 1 | BE OF A | blank | 200 stuff | 1 | BE OF A | blank | 200 stuff | | 2 | SEA | blank | 5 stuff | 1 | SEA | blank | 5 stuff |
QTP和Excel返回表1所示结果的最佳方式是什么?有没有办法?
片段,我使用的代码(一个或多个)的:
'Some Code Stuff here which leads to exporting the worksheet
rangeOne = "E1:H" & totalRowCnt
Set rangeObj = worksheetOne.Range(rangeOne)
Set range1 = excel1Obj.Range("E1")
Set range2 = excel1Obj.Range("F1")
Set range3 = excel1Obj.Range("H1")
rangeObj.Sort range1, ascend1, range2, ,ascend1, range3, ,ascend1,yes1
'Save worksheet then import sorted data back into Datatable
'and add more Code Stuff here which leads to exporting the worksheet again
rangeOne = "A1:D" & totalRowCnt
Set rangeObj = worksheetOne.Range(rangeOne)
Set range1 = excel1Obj.Range("A1")
Set range2 = excel1Obj.Range("B1")
Set range3 = excel1Obj.Range("D1")
rangeObj.Sort range1, ascend1, range2, ,ascend1, range3, ,ascend1,yes1
'Save worksheet then end script
我还没有机会尝试这个。而且不会很久。我会让你知道它是否有效。同时我已经发现了排序不好的原因。有人操纵数据,并在列“f”中为“BE OF A”添加了一个额外的“隐藏”字符,我在尝试调试时没有注意到这一点。 – 2013-05-18 18:31:45