Sorting vba excel对包含字符串的升序数字排序范围
我有一个包含以下字符串的范围: 步骤1、步骤10、步骤3、步骤2 使用以下代码Sorting vba excel对包含字符串的升序数字排序范围,sorting,excel,range,vba,Sorting,Excel,Range,Vba,我有一个包含以下字符串的范围: 步骤1、步骤10、步骤3、步骤2 使用以下代码 input_sh.Activate With ActiveSheet .Range("H2:H20").Select .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range("H2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAs
input_sh.Activate
With ActiveSheet
.Range("H2:H20").Select
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("H2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers 'xlSortNormal
With .Sort
.SetRange Range("H2:H20")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
步骤10、步骤1、步骤2、步骤3
但是我想
步骤1、步骤2、步骤3、步骤10我将使用mid函数将数字分隔为另一列,即最后的+1,并对其进行排序 编辑:我不在电脑前,但我想你唯一的方法是设置一个宏: 按前9个参数筛选工作表。 在第2行之前剪切并插入它们。 自己分类。 然后卸下过滤器,按照上面的步骤对其余部分进行排序。
字符串后面有下划线和数字。若这将成为字符串的格式,那个么您可以简单地使用u作为分隔符,使用convert text to columns拆分字符串。稍后,您可以排序和连接以获得已排序的字符串列表
Sub Sample()
Columns(1).Copy Columns(3)
Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, Other:=True, OtherChar:="_", FieldInfo:=Array(Array(1, 1), Array(2, 1))
Columns("D:D").Sort Range("D1")
i = 1
Do While Not IsEmpty(Range("C" & i))
Range("B" & i) = Range("C" & i) & "_" & Range("D" & i)
i = i + 1
Loop
End Sub
谢谢大家的贡献。 对于用户,我在阅读您的建议之前找到了解决方案。无论如何,谢谢你的努力 我的解决方案: 为_拆分str 在文件名旁边写第二个索引,然后按第二列排序,只需编号 用数字清除列
您需要编写一个自定义排序算法。这取决于您希望它的通用性-您是否有充分的理由不能简单地将字符串值更改为步骤_01等。我已尝试按照您的建议更改字符串,但我得到了相同的结果。字符串是从特定目录提取的文件名,因此我无法修改它们。对于glh,我考虑过这样做,但我希望我不必归结到这一点。您是否能够覆盖这些值,或者它们是此格式所必需的?它们是文件夹中的文件名。他们必须是那种形式,因为我怀疑需要什么;