Как более красиво написать программу ?

Программирование на Visual Basic for Applications
Killerloopp
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 01.03.2004 (Пн) 13:29

Как более красиво написать программу ?

Сообщение Killerloopp » 02.03.2004 (Вт) 15:15

HI ALL !!!
написал вот программу на VBA. По замыслу она переводит старые 6-и значные номера на новые 7-значные.Вообщем она то работает но уже очень неуклюже написана. :oops: :roll: Можно ли как нибудь её решить покрасивее? например с массивами или с более сложными циклами?
программа пригалагается :)
спасибо!
Вложения
Book2.zip
(12.24 Кб) Скачиваний: 67

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 02.03.2004 (Вт) 16:09

Мать моя женщина...
Советую использовать Select Case.
Lasciate ogni speranza, voi ch'entrate.

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 02.03.2004 (Вт) 16:46

а можно подробней про какие числа идет речь :?:
:shock: :shock: :shock: :? :? :?
Ничто так не ограничивает полёт мысли программиста, как компилятор

Killerloopp
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 01.03.2004 (Пн) 13:29

Сообщение Killerloopp » 02.03.2004 (Вт) 16:48

corgi писал(а):а можно подробней про какие числа идет речь :?:
:shock: :shock: :shock: :? :? :?


прилагаю сами числа
в принципе там меняется только префикс
Вложения
новые семизначные номера.zip
(8.98 Кб) Скачиваний: 47

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.03.2004 (Ср) 12:01

Код: Выделить всё
Private Function ConvertNumber(ByVal n As String) As String
  Select Case CLng(Left$(n, 3))
  Case 110 To 119
    ConvertNumber = "38" + Mid$(n, 2)
  Case 360 To 369, 790 To 792
    ConvertNumber = "36" + Mid$(n, 2)
  Case 630 To 639
    ConvertNumber = "26" + Mid$(n, 2)
  Case 793 To 799
    ConvertNumber = "37" + Mid$(n, 2)
  Case 100 To 109, 120 To 299, 570 To 579
    ConvertNumber = "2" + Left$(n, 2) + Right$(n, 4)
  Case 300 To 569, 580 To 629, 640 To 789
    ConvertNumber = "3" + Left$(n, 2) + Right$(n, 4)
  End Select
End Function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Killerloopp
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 01.03.2004 (Пн) 13:29

Спасибо!

Сообщение Killerloopp » 03.03.2004 (Ср) 14:18

Спасибо огромное !

остался один маленький вопросик. что такое case? и как его применять? я в VBA мало что понимаю :roll:

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 03.03.2004 (Ср) 14:35

оператор множественного выбора Select Case
применяется для изменения хода выполнения программы в зависимости от значения какой-либо переменной. можно сказать - это такой навороченый If ... End If
формат такой:
Select Case <variable>
Case <value>
' блок кода если выполняется условие
' т.е. если <variable> = <value>

Case <value1>-<value2>
' если <value1> меньше <variable> больше <value2>
Case <value1>, <value2>, <value3>
' если <variable> принимает одно из значений
Case Esle
' если ни одно из услови невыполнено
End Select
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 112

    TopList