Моя проблема не из легких, и я уже думал о том, как это сделать, но хочу услышать разные мнения.Пожалуйста, внимательно прочитайте.
Я написал код VBA, чтобы вставить конкретные номера моих офисных материалов в другой лист Excel, который просто объединяет их и вычисляет материал, относящийся к стоимости.Пока все просто.
Теперь я хочу отсортировать мои «офисные номера», которые выглядят как «1.2.30», «1.1.1130» или «1.3.150» в ряд слева направо.Как вы видите по числам, которые они сосут, чтобы сортировать, я должен изменить их, чтобы отсортировать их правильно, вопрос в том, как это сделать.Также в столбцах «Офисные номера» есть другие номера, которые я хочу поменять на «офисные номера» в столбцах.
Пример!
Сортировка:
1.2.30 1.1.1130 1.3.150
1 4 7
2 5 8
3 6 9
На это:
1.1.1130 1.2.30 1.3.150
4 1 7
5 2 8
6 3 9
Excel будет сортировать это так: 1.2.30, 1.3.150, 1.1.1130
Мне нужно найти способ, как изменить эти числав нормальные числа (что я уже сделал, исключив эти «.») и сохранив их в виде строки после последней точки и добавив столько «0», чтобы я предположил стандартизированные числа с длиной 5 чисел?поэтому все номера моего офиса после последней точки выглядят следующим образом: 1.2.30 = (1.2.) 00030, 1.3.150 = (1.3.) 150 = 00150 и 1.1.1130 = (1.1.) 01130
Код для сортировки, который я пробовал до сих пор:
Sub Table1Sort()
Range("B39:Q39").Select
Selection.ClearContents
Range("B44:Q44").Select
Selection.ClearContents
Range("B9:Q28").Select
ActiveWorkbook.Worksheets("Table1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Table1").Sort.SortFields.Add2 Key:=Range( _
"B10:Q10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Table1").Sort
.SetRange Range("B9:Q28")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Dim rng As Range
For Each rng In Range("B9:Q9")
rng = rng
Next
End Sub
Сохранение чисел в виде строк и добавление нулей, может быть?Или, может быть, моя логика все неправильно?что вы думаете по этому поводу с VBA?