使用自定义排序进行自定义排序

2023-12-24

我想根据列中的值对行进行排序G。有 3 个可能的值:Green, Red and Yellow。我想要对行进行排序Green在上面,然后Yellow, then Red.

我尝试的所有结果都会按字母顺序排序:Green, Red then Yellow。列上有二次排序R,但效果很好。

我的最新代码如下。rr是最后一行的编号。我已经尝试过有和没有Order1:=xlAscending.

sCustomList =“绿色”“黄色”“红色”

Application.AddCustomList ListArray:=sCustomList
    Range("A3:T" & rr).Sort Key1:=Range("G3:G" & rr), Order1:=xlAscending, _
    OrderCustom:=Application.CustomListCount + 1, MatchCase:=False, _
    DataOption1:=xlSortNormal, Key2:=Range("R3:R" & rr), Order2:=xlAscending

查看您的代码,sCustomList看起来像一个字符串类型变量而不是变体数组。我在自定义排序列表方面的成功在于每次都创建一个新的排序列表并使用最高的索引号来引用它。

Sub custom_sort()
    Dim vCustom_Sort As Variant, rr As Long

    vCustom_Sort = Array("green", "yellow", "red", Chr(42))
    Application.AddCustomList ListArray:=vCustom_Sort

    With Worksheets("Sheet2")    '<~~ set this properly!
        .Sort.SortFields.Clear
        rr = .Cells(Rows.Count, "G").End(xlUp).Row
        With .Range("A3:T" & rr)
            'use this to presort one or more secondary fields before the primary custom sort
            '.Cells.Sort Key1:=.Columns(18), Order1:=xlAscending, _
                        Key2:=.Columns(1), Order2:=xlDescending, _
                        Orientation:=xlTopToBottom, Header:=xlYes
            .Cells.Sort Key1:=.Columns(7), Order1:=xlAscending, _
                        Orientation:=xlTopToBottom, Header:=xlYes, MatchCase:=False, _
                        OrderCustom:=Application.CustomListCount + 1

        End With
        .Sort.SortFields.Clear
    End With

End Sub

之间有一个转折.Cells.Sort.SortFields.Add and .Cells.Sort这通常会产生一些混乱。这.SortFields.Add 方法 https://msdn.microsoft.com/en-us/library/office/ff836827.aspx uses a CustomOrder:=参数和范围排序方法 https://msdn.microsoft.com/en-us/library/office/ff840646.aspx uses a OrderCustom:=范围。这两者绝对不一样,但经常互换使用,带来灾难性的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用自定义排序进行自定义排序 的相关文章

随机推荐

  • 使用 CSS 垂直和水平对齐(中间和居中)[重复]

    这个问题在这里已经有答案了 我很困惑我该如何强迫自己div元素为中心 vertically and horizontally 在我的页面 意味着跨浏览器兼容性的一种或多种方式 有很多方法 具有固定度量的元素的中心水平和垂直对齐 CSS di
  • 如何淡出 MPMusicPlayerController 播放的声音?

    我想淡出播放的声音MPMusicPlayerController在特定时间段内 我怎样才能做到这一点 没有淡入淡出功能 因此您必须自己实现 循环直到音量为0 并为每一步添加延迟 如果您希望这一切在 2 秒后发生 请将代码放在一个块上 MPM
  • 在 C# 中签署 POST 表单以上传到 Amazon S3

    我在签署 Amazon S3 保单文件时遇到问题 有一些关于如何在 Ruby Java 和 Python 中执行此操作的示例 但当我尝试在 C 中执行此操作时 却行不通 我不断收到无效签名 我不确定我哪里出了问题 http aws amaz
  • 使用 Wix 安装字体而不是本地字体文件夹

    我正在使用 Wix 为网站创建安装 添加字体时 WiX 会选择 ttf 扩展名 并要求您将其安装到本地字体文件夹 当使用目录 Id FontsFolder 和 TrueType yes 时 如果你删除这些属性 它就会崩溃 有没有办法让 Wi
  • 从现有目标文件创建共享库

    我的 IDE 中有一个项目 我需要创建一个共享库以在扩展中使用 我不想使用共享库设置复制该项目 有没有办法使用我现有项目中的目标文件 o 构建共享库 据我了解 我可以为此编写一个 makefile 我假设您使用的是某种 Unix 并且可能正
  • 调整 XAML Grid.Background 图像的大小

    我有一个简单的 XAML 片段 它布置了一组图块 每个图块都有一个背景图像图标
  • Drive.DriveApi.getAppFolder(mGoogleApiClient) 已弃用

    在尝试设置适用于 Android 的 Google Drive API 时 在这一行中 Drive DriveApi getAppFolder mGoogleApiClient 我明白了 DriveApi and getAppFolder已
  • 重新启用 touchmove 事件侦听器。带有 Phonegap 的 iPhone 应用程序

    我的 js 顶部有以下内容 这是 iScroll 插件工作所必需的 document addEventListener touchmove function e e preventDefault false 在某些页面上 我需要重新启用此功
  • 这是将 NHibernate Isession 作为 PerWebRequest 处理的好解决方案吗

    我一直在努力研究 NHibernate 会话管理 现在最终找到了两种可能的解决方案来满足每个 Web 请求的会话 我在 ASPNET mvc 项目中使用 Windsor 进行 IoC 第一个解决方案是在 begin request 中打开会
  • pjsip接收短信

    任何人都知道有关如何设置 pjsip 客户端来接收消息的任何好例子 我可以使用以下方式从客户端发送消息 pjsua im send sip acc id to NULL msgbody NULL NULL 到任何数字 但我不知道如何才能将消
  • 无法更改标签栏标签的颜色

    我正在尝试更改活动选项卡标题颜色 我尝试使用 tabBarOptions 但它不起作用 Home screen TabNavigator Home screen HomeScreen navigationOptions navigation
  • JSONObject 的 URL 问题

    我有以下代码 但是当我在数据库中保存以下 JSON 时 它给了我错误的 url 例如 url https www test com test import org json simple JSONObject public class De
  • 在wxPython中创建主框架的子框架

    我正在尝试在 wxPython 中创建一个新框架 它是主框架的子框架 以便当主框架关闭时 子框架也将关闭 这是我遇到的问题的一个简化示例 usr bin env python import wx class App wx App def O
  • 编译时未找到 com.sun.xml.internal.ws.developer.JAXWSProperties

    我们使用了类JAXWSProperties来自com sun 封装在代码中以便设置超时属性 如下所示 import com sun xml internal ws developer JAXWSProperties Map
  • Puppeteer:如何获取页面中发送/接收的总字节数

    是否有任何 puppeteer api 解决方法可以获取页面中发送 接收的总字节数 例如 下面的代码为我提供了所有计时统计数据 await page evaluate gt JSON stringify window performance
  • 使用 UTF-16 编码从管道读取 PowerShell 输出

    我目前正在尝试通过调用从管道读取 PowerShell 的输出CreateProcess startInfo cb sizeof STARTUPINFOW startInfo hStdError pipes gt hErrWrite sta
  • 如何在 Struts 2 中进行动态 URL 重定向?

    我正在尝试将我的 Struts2 应用程序重定向到生成的 URL 在本例中 我希望 URL 使用当前日期或我在数据库中查找的日期 所以 section document变成 section document 2008 10 06 最好的方法
  • Socialauth API 4.3 与 Google Oauth 2.0

    有谁知道如何在带有 Google Oauth 2 0 的 servlet 中使用 Brickred Socialauth API 4 3 我在哪里可以获得 consumer secret 和 consumer key 您这边使用 API 成
  • 何时在 ASP.NET MVC 2 应用程序中提交 NHibernate 事务?

    首先 一些背景知识 我是 ASP NET MVC 2 和 NHibernate 的新手 我正在开始我的第一个应用程序 我想使用 NHibernate 因为我来自 JSP Struts 1 Hibernate Web 应用程序 似乎没有人谈论
  • 使用自定义排序进行自定义排序

    我想根据列中的值对行进行排序G 有 3 个可能的值 Green Red and Yellow 我想要对行进行排序Green在上面 然后Yellow then Red 我尝试的所有结果都会按字母顺序排序 Green Red then Yell