VBScript中 - 自定义排序的Excel电子表格并保存
问题描述:
目标
这个任务的目标是:VBScript中 - 自定义排序的Excel电子表格并保存
- 在目录中查找最近的Excel文件,
- 那种文件中使用自定义列表(在下面的代码中定义),
- 使用相同名称保存排序文件,并且
- 让Windows调度程序每隔10分钟运行一次VB脚本。
我尝试
我已经编译的代码,但我得到一个错误信息,当我尝试运行它:
'Find the most recent file in directory
Option Explicit
Dim fso, path, file, recentDate, recentFile, objExcel, objWorkbook, objRange, objWorksheet, SortCol
Set fso = CreateObject("Scripting.FileSystemObject")
Set recentFile = Nothing
For Each file in fso.GetFolder("C:\Users\joe\Documents\test\").Files
If (recentFile is Nothing) Then
Set recentFile = file
ElseIf file.DateLastModified > recentFile.DateLastModified Then
If Left(recentFile.name, 2) = "~$" Then
Set recentFile = file
End If
End If
Next
'Open the most recent file
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(recentFile.Path)
Set objWorksheet = objWorkbook.Worksheets("Sheet1")
'Sort by custom array
objWorksheet.Sort.SortFields.Clear
objWorksheet.Sort.SortFields.Add key:=Range("A1:A20") _
, SortOn:=xlSortOnValues, Order:=xlDescending, CustomOrder:= _
"alpha,bravo,charlie,delta,echo,foxtrot,golf,hotel,india,juliet", DataOption _
:=xlSortNormal
With objWorksheet.Sort
.SetRange Range("A1:B20")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Save Excel workbook with same name
objWorkbook.save
objExcel.quit
错误消息
线:23
字符:38
错误:预期声明
代码:800A0400
来源:Microsoft VBScript编译器错误
答
您正在使用部分语法VBS不明白。 VBS只做位置未命名的参数。 Excel常量不可用于外部程序。
objWorksheet.Sort.SortFields.Add key:=Range("A1:A20") _
, SortOn:=xlSortOnValues, Order:=xlDescending, CustomOrder:= _
"alpha,bravo,charlie,delta,echo,foxtrot,golf,hotel,india,juliet", DataOption _
:=xlSortNormal
因此,所有这些常量都需要在Excel的对象浏览器中查找并使用该值。
Const xlSortNormal = 0
Member of Excel.XlSortDataOption
你可以查看其他人。
假设你的位置是正确的
objWorksheet.Sort.SortFields.Add Range("A1:A20"), Enter Value, Enter Value, "alpha,bravo,charlie,delta,echo,foxtrot,golf,hotel,india,juliet", 0
我的答案在这里有VBA的提示和链接到一个网页与Excel技巧。 Pointers needed for speeding up nested loop macro in VBA
另外VBS帮助可以在http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe下载。
我建议您将错误消息添加到问题。没有它就很难回答这个问题。 –
@JohnWheal添加了错误信息。 – amanda52