Например, в Word в диалоговое окно печать вводим 1-30, что означает распечатать страницы с 1 по 30.
Я с помощью inputbox получаю такую строку 1-30, как заполнить остальные цифры 2, 3, 4 и до 29?
Замена знака тире в строке на числа...
Модератор: Naeel Maqsudov
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
Что значит заполнить? Получить строку вида "1,2,3,...30"?
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
IceFlame
да.
да.
Попробуйте так:
Код: Выделить всё
Sub RRR()
Dim Str As String, Arr() As String, n As Long, _
nn As Long, sStr As String, i As Long
On Error GoTo lbl
Str = InputBox("Введите страницы печати: ")
Arr = Split(Str, "-")
n = Val(Arr(0))
nn = Val(Arr(1))
sStr = n
For i = n + 1 To nn
sStr = sStr & "," & i
Next i
MsgBox sStr
Exit Sub
lbl:
MsgBox "Ошибка данных!"
End Sub
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
AlexZZZ
я ещё не пробовал твой код, а как быть в этой ситуации: 1, 4, 5, 6-30, 40, 41, 43-60?
я ещё не пробовал твой код, а как быть в этой ситуации: 1, 4, 5, 6-30, 40, 41, 43-60?
Однако...
Тогда так:
Тогда так:
Код: Выделить всё
Sub SSS()
Dim Arr() As String, sStr As String, _
i As Long, Str As String
On Error GoTo lbl
sStr = InputBox("Введите страницы печати: ")
Arr = Split(sStr, ",")
For i = 0 To UBound(Arr)
If InStr(1, Arr(i), "-", vbBinaryCompare) > 0 Then
If Len(Str) > 0 Then
Str = Str & "," & RRR(Replace(Arr(i), " ", ""))
Else
Str = RRR(Replace(Arr(i), " ", ""))
End If
Else
If Len(Str) > 0 Then
Str = Str & "," & Replace(Val(Arr(i)), " ", "")
Else
Str = Replace(Val(Arr(i)), " ", "")
End If
End If
Next i
'Макрос печати
MsgBox Str
Exit Sub
lbl:
MsgBox "Ошибка данных!"
End Sub
Function RRR(Str As String)
Dim Arr() As String, n As Long, _
nn As Long, sStr As String, i As Long
On Error GoTo lbl
Arr = Split(Str, "-")
n = Val(Arr(0))
nn = Val(Arr(1))
sStr = n
For i = n + 1 To nn
sStr = sStr & "," & i
Next i
RRR = sStr
Exit Function
lbl:
MsgBox "Ошибка данных!"
End Function
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
AlexZZZ
я проанализирую твой код в выходные, потому напишу, что у меня получилось.
Но всё равно спасибо.
я проанализирую твой код в выходные, потому напишу, что у меня получилось.
Но всё равно спасибо.