我想整理一列(这是一个目标日期,我希望按照最早的日期对其进行排序)。 问题是第一行是文本(列的名称),因此当我按列F(目标日期)对其进行排序时,文本行将转到excel文档的最后。 我希望这些列名留在每一列的顶部。
以下是代码:
$objRange = $worksheet.UsedRange
$objRange2 = $Excel.Range("F2")
[void]$objRange.Sort($objRange2.Range("F2"))
我不确定如何排除第一行的排序。
答案 0 :(得分:1)
由于您的范围包含标题,因此您必须向Sort方法添加一个参数,以指示它不应对标题进行排序。
您的范围命令将如下所示:
[void]$objRange.Sort($objRange2,1,$null,$null,1,$null,1,1)
对于xlSortOrder参数,Sort方法不喜欢$ null,所以我只指定1表示升序。如果你需要降序,请使用2.最后一个是我们真正关心的参数。指定1表示是,该范围具有不应包含在排序操作中的标题。
语法参考:
https://msdn.microsoft.com/en-us/library/office/ff840646.aspx