Страницы: 1
RSS
Переменные в коде макроса, Внесение нескольких переменных в одной строке кода
 
Здравствуйте. Подскажите пожалуйста:
Если ввожу переменные отдельно:

Код
Sub test3()
   

   Dim A As Long
   Dim B As Long
   Dim C As Long
   Dim D As Long
   
   
   A = InputBox("Введи значение")
   B = InputBox("Введи значение")
   C = InputBox("Введи значение")
   D = InputBox("Введи значение")
   MsgBox A + B + C + D
   End Sub


ТАК РАБОТАЕТ
Но если ввести значение переменных через "," как ниже - не работает. Так нельзя вводить, или нужно дополнительно какое-то условие прописать, что переменные в куче?
Я ввожу данные, но результат суммирования какой-то непонятный...

Dim A, B, C, D As Long
 
Во втором случае вы не объявляете явно тип переменных A, B, C.
При следующем обращении тип определяется автоматически как String.
Объявление переменных (VBA) | Microsoft Docs
Изменено: МатросНаЗебре - 26.04.2022 13:41:37
 
Цитата
написал:
Во втором случае вы не объявляете явно тип переменных A, B, C.
При следующем обращении тип определяется автоматически как String.
А как правильно нужно было прописать эту строку?
 
Код
Dim A As Long, B As Long, C As Long, D As Long
 
Код
Dim A as Long, B as Long, C as Long, D as Integer
':O)
Кому решение нужно - тот пример и рисует.
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1      Dim   A   As   Long  , B   As   Long  , C   As   Long  , D   As   Long   
 
Тогда нет никакой разницы, в столбик, или в строку...
Я просто увидел код, в котором перечислялось несколько переменных через запятую и в конце стоял признак. Возможно это был String...Не помню. Но судя по Вашему объяснению-так и было
 
melnik542, правильно, если в одну строку: Dim A As Long, B As Long, C As Long, D As Long или короче Dim A&, B&, C&, D&
Подробно и понятным языком: ЧТО ТАКОЕ ПЕРЕМЕННАЯ И КАК ПРАВИЛЬНО ЕЁ ОБЪЯВИТЬ?
Изменено: Jack Famous - 26.04.2022 13:52:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Можно использовать спец символы в именах переменных, тогда as что-то не надо писать.
Например:
Код
Dim A&, B%, C$
'это эквивалент
Dim A as Long, B as Integer, C as String 
Кому решение нужно - тот пример и рисует.
 
Цитата
написал:
Можно использовать спец символы в именах переменных, тогда as что-то не надо писать.
Например:
Код
    [URL=#]?[/URL]       1  2  3      Dim   A&, B%, C$    'это эквивалент    Dim   A as   Long  , B as   Integer  , C as   String   
 
Спасибо
 
Цитата
написал:
melnik542, правильно, если в одну строку:  Dim A As Long, B As Long, C As Long, D As Long  или короче  Dim A&, B&, C&, D&
Подробно и понятным языком:  ЧТО ТАКОЕ ПЕРЕМЕННАЯ И КАК ПРАВИЛЬНО ЕЁ ОБЪЯВИТЬ?
Спасибо
 
melnik542,  Без цитирования никак?  Посмотрите на свои посты, они читаемы? Вернитесь и приведите в порядок.
По вопросам из тем форума, личку не читаю.
 
А можно еще так:
Код
'даем понять VBA, что все переменные, которым явно не назначен тип и которые начинаются с буквы L - должны иметь тип Long
DefLng L
Option Explicit
Sub TestVar()
    Dim lRow, lCol As String
    MsgBox "Тип переменной lRow: " & TypeName(lRow) & "; Тип переменной lCol: " & TypeName(lCol)
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 26.04.2022 15:14:44
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх