VBScript – 自定义对Excel电子表格进行sorting并保存

目标

这个任务的目标是:

  1. 在目录中find最新的Excel文件,
  2. 使用自定义列表(在下面的代码中定义)对该文件进行sorting,
  3. 以相同的名称保存sorting的文件
  4. 让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
Char:38
错误:预期的陈述
代码:800A0400
资料来源:Microsoft VBScript compilationerror

您正在使用部分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提示页面。 在VBA中加速嵌套循环macros所需的指针

还可以从http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe下载VBS帮助。