Здравствуйте. Помагите пожалуйста. в таблице есть столбцы в ячейку записанно такое вот значение 00093682 – 00093685 то есть диапазон от и до. можно ли и как сделать что бы автоматом так сказать раскрыть все значение от 00093682 до 00093685. заранее спасибо
Function SplitD(d)
Dim v, i&, s$
v = Split(d)
If UBound(v) = 0 Then Exit Function
i = Val(v(2)): SplitD = i + 1 - Val(v(0))
For i = Val(v(0)) To i
s = s & ", " & i
Next
If Len(s) Then MsgBox Right(s, Len(s) - 1)
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
[URL=#]?[/URL] 1 2 3 4 5 6 7 8 9 10 Function SplitD(d) Dim v, i&, s$ v = Split(d) If UBound(v) = 0 Then Exit Function i = Val(v(2)): SplitD = i + 1 - Val(v(0)) For i = Val(v(0)) To i s = s & ", " & i Next If Len(s) Then MsgBox Right(s, Len(s) - 1) End Function
Sub mrshkei()
Dim arr, arr2, arr3, i As Long, n As Long, k As Long, x As Long
arr = Range("A6:A8")
ReDim arr3(1 To 1): k = 1
For i = LBound(arr) To UBound(arr)
arr2 = Split(arr(i, 1), " – ")
x = x + arr2(1) - arr2(0) + 1
ReDim Preserve arr3(1 To x)
For n = CDbl(arr2(0)) To CDbl(arr2(1))
arr3(k) = n: k = k + 1
Next n
Next i
Range("A10").Resize(UBound(arr3), 1) = Application.WorksheetFunction.Transpose(arr3)
End Sub
Пусть в А1 00093682 – 00093685 в столбце В все значение от 00093682 до 00093685
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
iLastRow = 1
Cells(iLastRow, "B") = Split(Cells(1, 1), " – ")(0)
Do
Cells(iLastRow, "B").NumberFormat = "00000000"
Cells(iLastRow + 1, "B") = Cells(iLastRow, "B") + 1
iLastRow = iLastRow + 1
Loop While Format(Cells(iLastRow, "B"), "00000000") <> Split(Cells(1, 1), " – ")(1)
End Sub