Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
1

Изменить код

28.06.2011, 13:01. Показов 1865. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как выразить это в массиве и чтоб при чтении ячейки 1первая цифра отбрасывалась в читались след 3 цифры
пр: 79082912341 - 7 отрабасывется а 908 проверяется


Visual Basic
1
2
3
4
5
6
7
8
9
Function Operators(ByVal Target As Range) As String
   Select Case Left$(Target.Value, 3)
      Case 960: Operators = "Beeline"
      Case 905: Operators = "TELE2"
      Case 923: Operators = "Megafon"
      Case 913: Operators = "MTC"
      Case Else: Operators = "Unknown"
   End Select
End Function
[/QUOTE]

Добавлено через 15 минут
Примерно начал писать

Public Function Operators2(ByVal Target As Range) As String

Dim Оператор() As String

Dim Код() As String


Оператор = Array("TELE2", "beeline", "Megafon")
Код = Array("902", "904", "908")

End Function
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2011, 13:01
Ответы с готовыми решениями:

Оптимизировать и изменить код
Добрый день! Данный код не правильно работает, не могу понять в чем ошибка. Вот описание: У нас...

Изменить макрос, который по нажатию клавиши генерируется штрих-код...
Добрый день!Нашел очень полезный для себя макрос,но не могу в нем никак разобраться. В этом файле...

Как изменить программный код (сделать программу быстрее, убрать цикл For To Next )?
Как изменить программный код (сделать программу быстрее, убрать цикл For To Next )? Public Sub...

Как изменить код (копирование определенных данных после выборки файлов)
Всем, доброго дня! Есть такой макрос в книге ХХХ (ниже описан), который после его запуска ...

21
Заблокирован
28.06.2011, 13:11 2
danny41,
ключевое слово: функция Mid (есть ещё оператор Mid).
0
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
28.06.2011, 13:25  [ТС] 3
все равно не понимаю
0
Заблокирован
28.06.2011, 13:26 4
danny41,
в интернете наберите: функция Mid VBA.
0
735 / 203 / 11
Регистрация: 23.06.2011
Сообщений: 440
28.06.2011, 13:29 5
Вместо
Visual Basic
1
Left$(Target.Value, 3)
Надо
Visual Basic
1
Mid$(Target.Value, 2, 3)
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
28.06.2011, 20:15 6
чтобы понимать
Цитата Сообщение от Gibboustooth Посмотреть сообщение
Mid$(Target.Value, 2, 3)
надо чтобы Target было большим "мсмиьавымьвампбьамбьавбавыфбьмибьавыми бавым бавьфымибьавыт"
и поиграться с цифирками 2, 3
0
735 / 203 / 11
Регистрация: 23.06.2011
Сообщений: 440
28.06.2011, 20:20 7
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
чтобы понимать
Человеку просто не интересно. Иначе бы он разобрался сам.
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,715
28.06.2011, 20:29 8
нет просто не каждый например дойдёт до того, чтобы после прохождения строки навести курсор и посмотреть чему равна переменная, и главное бывают случае, что это не подсвечивается, не знаю почему
0
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
29.06.2011, 21:58  [ТС] 9
Помогите добрые люди напишите код с помощью массива, буду молится на вас!
0
Заблокирован
30.06.2011, 07:34 10
danny41,
задание не понятно.
0
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
30.06.2011, 08:33  [ТС] 11
как выразить это в массиве и чтоб при чтении ячейки 1первая цифра отбрасывалась в читались след 3 цифры
пр: 79082912341 - 7 отрабасывется а 908 проверяется


Код Visual Basic1
Function Operators(ByVal Target As Range) As String
Select Case Left$(Target.Value, 3)
Case 960: Operators = "Beeline"
Case 905: Operators = "TELE2"
Case 923: Operators = "Megafon"
Case 913: Operators = "MTC"
Case Else: Operators = "Unknown"
End Select
End Function
0
Заблокирован
30.06.2011, 08:36 12
danny41,
т.е. выделяем в Excel определённую ячейку, а дальше что надо сделать?
0
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
30.06.2011, 08:44  [ТС] 13
выводит оператор сотовой связи
я написал эту функцию 2 способами
1. selectcase
2. if the
третий нужно написать с помощью массива,
0
Заблокирован
30.06.2011, 09:05 14
Код:
Visual Basic
1
2
3
4
5
6
7
8
9
Sub P1()
Dim Результат As String
Результат = F1(Mid(ActiveCell.Value, 2, 3))
If Результат = "" Then
    MsgBox "Организации с таким кодом нет"
Else
    MsgBox Результат
End If
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function F1(Код As String) As String
'Массив будет двумерным, имеющим 2 столбца и столько строк,
'сколько организаций, предоставляющих услуги сотовой связи.
'В моём случае будет 3 организации.
Dim Массив(1 To 3, 1 To 2)
Dim i As Integer
'Заполняем массив данными.
'Двоеточие используется, чтобы в одной строке можно было 2 команды поместить.
Массив(1, 1) = "960": Массив(1, 2) = "Beeline"
Массив(2, 1) = "905": Массив(2, 2) = "TELE2"
Массив(3, 1) = "923": Массив(3, 2) = "Megafon"
'Просматриваем все элементы в первом столбце.
'UBound(Массив, 1) - это количество строк в массиве.
For i = 1 To UBound(Массив, 1) Step 1
    'Если есть совпадение, то берём значение (это название организации)
    'из второго столбца
    If Массив(i, 1) = Код Then
        F1 = Массив(i, 2)
        'Если нашли совпадение, то дальше нет смысла просматривать
        'остальные элементы массива, поэтому выходим из цикла.
        Exit For
    End If
Next i
End Function
1
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
30.06.2011, 09:24  [ТС] 15
спасибо, но что-то он не срабатывает
0
Заблокирован
30.06.2011, 09:28 16
danny41,
в какой строке ошибка и что за ошибка?
0
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
30.06.2011, 09:29  [ТС] 17
в коде нет ошибок кода выбираеш номер скажем 89609921723, то он не пишет оператора а пишет ""
0
Заблокирован
30.06.2011, 09:33 18
danny41,
мой код рабочий. Видимо вы его видоизменяете и что-то не так делаете.
0
1 / 1 / 0
Регистрация: 14.06.2011
Сообщений: 71
30.06.2011, 09:35  [ТС] 19
я его не изменял) вожу номер в любую ячейку затем нажимаю значок выбрать функции тоже в любой ячейке выбираю ту ячейку где номер и место оператора отображается ""
0
Заблокирован
30.06.2011, 09:39 20
danny41,
есть 2 распространённых способа вызова функций:
  1. это с помощью процедуры (в моём случае это P1);
  2. и через кнопку в Excel Вставка функции.
В моём случае - это первый пункт.

Подстройте код под себя (как вам надо вызывать функцию).
0
30.06.2011, 09:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2011, 09:39
Помогаю со студенческими работами здесь

Как можно изменить код чтобы он вставлял данные не по Row а по Column?
как можно изменить код чтобы он вставлял данные не по Row а по Column Private Sub...

Изменить код так, чтобы можно было обойтись без использования ячейки со значением n.
Задание 1 Имеется следующий код: Private Sub CommandButton1_Click() 'Определяем переменную, в...

Изменить код в калькуляторе, что бы он выполнял операции сложения, умножения, вычитания и деления над рациональными дробями
Доброго времени суток, срочно нужна помощь. Помогите изменить код в калькуляторе, что бы он...

Изменить программный код так, чтобы считались числа от первого вводимого числа до последнего
Надо изменить программный код так, чтобы считались числа от первого вводимого числа до последнего и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru