所以我导入CSV,格式化日期列并保存为XLS文件。
我希望能够对日期列进行排序。我有以下代码,并且我对如何对列进行排序感到困惑。日期列是第4列,有"日期"作为第1行的标题
$xl = new-object -comobject excel.application
$xl.visible = $false
$Workbook = $xl.workbooks.open(“$destination")
$xl.columns.autofit() >$null
$xl.Columns.Item('D').NumberFormat = "MM/dd/yyy"
$Workbook.SaveAs($final,1)
$Workbook.Saved = $True
$xl.Quit()
我已经录制了以下宏但无法解读如何将其更改为powershell。任何帮助表示赞赏
Sub Macro1()
'
' Macro1 Macro
'
'
Columns("D:D").Select
ActiveWorkbook.Worksheets("newreport").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("newreport").Sort.SortFields.Add Key:=Range("D1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("newreport").Sort
.SetRange Range("A1:F251")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
答案 0 :(得分:0)
这很容易!
$empty_Var = [System.Type]::Missing
$sort_col = $objWorkSheet.Range("A1:A255")
$objWorkSheet.UsedRange.Sort($sort_col,1,$empty_Var,$empty_Var,$empty_Var,$empty_Var,$empty_Var,1)
关于Sort方法参数的含义,您可以查看office vba手册:https://docs.microsoft.com/en-us/office/vba/api/excel.range.sort