Если Вы уже читали моё объяснения процедуры Function, то Вы поймёте Sub ёще быстрее! В общем так, Sub это то же самое, что и Function, только она не возвращает значение, а производит какое-нибудь действие. Например вывод на экран сообщения или манипулирование несколькими свойствами. Например MsgBox. Это тоже подпрограмма. Например:
Msgbox ("Привет!", ,"Заголовок")
Msgbox - это имя подпрограммы. А "Привет!" и "Заголовок" это передаваемые значения. Т.е. подпрограмма Msgbox выводит окно на экран с текстом "Привет!" и заголовком "Заголовок".
Теперь допустим, что Вам нужно, чтобы ваша программа вырезала из передаваемых строк все заданные символы (возьмём мой пример из "Практики"):
Sub Main()
объявляем переменную для строки
Dim Stroka As String
объявляем переменную для символа, который надо вырезать
Dim Symbol As String
объявляем переменную для места нахождения символа
Dim ReturnNumber As Integer
получаем строку, по умолчанию стоит строка
"There is nothing impossible!"
Stroka = InputBox("Введите строку", , "There is nothing impossible!")
получаем символ, по умолчанию стоит символ "i"
Symbol = InputBox("Введите символ", , "i")
запускаем цикл
Do
с помощью InStr получаем местоположение искомого символа
если оно равно нулю, покидаем цикл
ReturnNumber = InStr(1, Stroka, Symbol): If _
ReturnNumber = 0 Then Exit Do
строке присваем все символы слева до искомого и справа
Stroka = Left(Stroka, ReturnNumber - 1) + Right(Stroka, _
Len(Stroka) - ReturnNumber)
Loop
MsgBox Stroka выводим отредактированную строку на экран
End Sub
А теперь представте, что эти строки Вам нужны более одного раза и в разных местах !
Не проще ли написать подпрограмму, которая это делает и потом просто вызывать её? Так, пишем (вне модуля):
Public Sub RemSym(Stroka, Symbol)
Do
ReturnNumber = InStr(1, Stroka, Symbol): If _
ReturnNumber = 0 Then Exit Do
Stroka = Left(Stroka, ReturnNumber - 1) + Right _
(Stroka, Len(Stroka) - ReturnNumber)
Loop
MsgBox Stroka
End Sub
Вот так, а теперь можно просто вызывать эту подпрограмму и передать значения строки и символа:
RemSym Stroka, Symbol
и из любого места!
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://visualprogs.narod.ru/
Похожие работы
... FuncX(a, b, c) Неправда это удобней? Надеюсь я обьяснил понятно ;)? Примечание: передаваемые значения функции изменяются! Напрмер: Function ABC (X,Y) ABC = (2 * X) + (2 * Y) End Function Теперь X равно 2 * Х, а Y равно 2 * Y, т.е. их значения удвоились. Для того чтобы переданные значения не изменялись то в скобках нужно писать перед аргументом ByVal. Например: Function ABC ( ByVal X, ByVal
... 1 ∑ mi qi =1 q6=475/475 q6=1 ∑=0,967 q6=475/640 q6=0.74 ∑=1,117 Кб = 1 К1 = 0,66*0,15+1*0,25+1*0,3+1,39*0,1+0,86*0,15+1*0,05=0,967. К2 =1*0,15+1,33*0,25+1*0,3+1*0,1+1,39*0,15+0,74*0,05=1,117. Выполнив сравнительную оценку стендов для диагностирования ТНВД, указанных в таблице 2, видно, что технический уровнь стенда ДД 10-04К выше уровня базового, по ...
... и интересы целевых рынков, а затем обеспечивает клиентам высшую потребительскую ценность способами, которые поддерживают (или даже улучшают) благополучие клиента и общества. Эта концепция позволяет ответить на вопрос: всегда ли фирма, которая выявляет и удовлетворяет потребности клиентов, делает все возможное для потребителей и общества, если оценивать ее работу на протяжении десятилетий. ...
... из кризисного состояния. В борьбе с угрозой банкротства предприятие должно рассчитывать исключительно на внутренние финансовые возможности. Вышеперечисленные принципы являются основой организации антикризисного управления предприятием [9]. Теперь коснемся вопроса, какую роль играет финансовый менеджмент в антикризисном управлении. Практически все вышеперечисленные авторы сходятся во мнении, ...
0 комментариев