【问题标题】:Using VBS to sort column in excel while maintaining expanded selection使用VBS对excel中的列进行排序,同时保持扩展选择
【发布时间】:2016-12-10 18:28:23
【问题描述】:

我创建了一个 csv 文件,我想对列进行排序,但让它扩大选择范围,否则数据不准确。示例:A 列是服务器名称,B 列是安装修补程序日期,C 列是安装者。

当使用以下代码时,它会根据安装日期对 B 列进行排序,但不会保留其他列中的日期。

      Const xlAscending = 1 
Const xlDescending = 2 
Const xlYes = 1 

Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("c:\users\x\desktop\hotfixes.csv") 'insert link or URL to sharepoint document.


Set objRange = objworkbook.worksheets(1).columns(2) 
objRange.Sort objrange.cells(1,1), xlAscending, , , , , , xlYes 





objExcel.DisplayAlerts = False 
objworkbook.save 
objworkbook.close 
objexcel.quit 

我附上了我使用的示例 csv 文件的链接。有谁知道我需要输入什么命令来保留整个选择。

https://static.spiceworks.com/attachments/post/0017/4443/hotfixes.txt

【问题讨论】:

    标签: excel vbscript


    【解决方案1】:

    它完全按照您的要求执行 - 它正在对第 2 列进行排序。它的工作方式与您打开文件、手动突出显示单个列然后点击快速排序按钮之一相同 - 它仅对突出显示的范围进行排序.

    尝试类似:

    With objworkbook.worksheets(1)
        Set objRange = .range(.columns(1),.columns(3))
        objrange.sort objrange.cells(1,2), xlascending, , , , , , xlYes 
    End With
    

    这会扩展您的排序范围以包括第 1 到 3 列,然后键入它以对第二列进行排序。它应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-28
      • 2020-06-18
      • 1970-01-01
      • 2017-06-26
      • 2013-11-24
      • 1970-01-01
      • 2021-12-02
      • 2016-11-08
      相关资源
      最近更新 更多