excelvba中的排序

excelvba中的排序,vba,excel,excel-formula,Vba,Excel,Excel Formula,我在VBA中具有以下功能。此函数用于从一个范围创建下拉列表。现在我想把排序附加到这个。如何在这种情况下创建排序 Public Sub CORE_SetValidation(ByRef Rng As Range, ByVal Value As String) With Rng.Validation Call .Delete If Value <> "" Then Call .Add(Type:=xlValidateList

我在VBA中具有以下功能。此函数用于从一个范围创建下拉列表。现在我想把排序附加到这个。如何在这种情况下创建排序

Public Sub CORE_SetValidation(ByRef Rng As Range, ByVal Value As String)
    With Rng.Validation
        Call .Delete
        If Value <> "" Then
            Call .Add(Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Value)
            .ErrorMessage = "Please select a value from drop-down list"
            .ErrorTitle = "Value Error"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputMessage = ""
            .InputTitle = ""
            .ShowInput = True
            .ShowError = True
        End If
    End With
End Sub
Public Sub-CORE\u SetValidation(ByRef Rng作为范围,ByVal值作为字符串)
使用Rng.Validation
呼叫。删除
如果值为“”,则
添加(类型:=xlValidateList,警报样式:=xlValidAlertStop,公式1:=Value)
.ErrorMessage=“请从下拉列表中选择一个值”
.ErrorTitle=“值错误”
.IgnoreBlank=True
.InCellDropdown=True
.InputMessage=“”
.InputTitle=“”
.ShowInput=True
.ror=真
如果结束
以
端接头

您希望对整个范围进行什么排序?删除之前还是之后?使用VBA还是仅使用excel中已实现的排序选项?为什么不在excel中手动启用排序时录制宏,看看会发生什么?很抱歉,我是VBA新手,在使用上述功能创建宏后,我需要在下拉列表中进行排序,然后在设置排序时尝试录制宏,然后看看生成了什么代码,并将其应用到您现有的代码中。@luklag从您的评论中得到一个想法是非常有趣的。但是我真的不知道怎么做。你能提供一个新的答案吗?在“开发人员”选项卡下有一个红色的记录按钮。只需按下它,然后设置排序,再次按下它停止录制。您的文件中应该有一个新的子文件,其中包含您刚才录制的步骤。