Страницы: 1
RSS
Что такое в коде := двоеточие и равно
 
Здравствуйте, прошу Вас немного просветить.
Для чего пишут :=, можно же просто =?
Пример:
Код
ActiveSheet.Unprotect Password:="Pingvin"
ActiveSheet.Unprotect Password="Pingvin"
Какая разница и зачем оно употребляется?
Заранее благодарен!

П.С.
Прошу сильно не кричать, VB пытаюсь освоить сам .
Изменено: Xapa6apga - 05.02.2015 23:05:20
 
Цитата
Xapa6apga пишет: зачем оно употребляется?
для указания значения параметра метода объекта, без привязки его (параметра) к конкретной позиции в перечне параметров данного метода.
З,Ы. Сам ничего не понял  :)  

Ваш пример не показателен.

Для наглядности.
Чтобы указать значение параметра SearchFormat без указания других НЕобязательных параметров в такой строке:
Range("A1:A10"  ;)  .Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

нужно ввести много значимых запятых
Код
Range("A1:A10").Find("Искомое_значение",,,,,,,,"Нужный_формат")
а можно указать сразу, без использование значимых запятых
Код
Range("A1:A10").Find(What:="Искомое_значение",SearchFormat:="Нужный_формат")
Изменено: Sanja - 05.02.2015 23:05:30
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja пишет: без привязки его (параметра) к конкретной позиции
т.е. когда много параметров через := можно указывать их в любой последовательности.
 
да
Согласие есть продукт при полном непротивлении сторон
 
два символа := нужны,чтобы VBA понял,что это параметр метода.
vba просматривает код и если видит два символа := то понимает,что это параметр метода
то есть это такой синтаксис языка vba
 
ААааа, спасибо большое!
Jack, более понятно, как для Оленя объяснил )
 
Здравствуйте! У меня именно такой же вопрос.
Из этой темы я поняла, что двоеточие ставится, когда перечисляются несколько параметров в одну строку.

Если я пишу так, то макрос работает:
Код
Cells.AutoFilter Field:=1, Criteria1:="*Москва*"

А если я хочу не указывать двоеточия и перечисляю критерии в столбик, то не работает. Макрос ставит только фильтр:
Код
Cells.AutoFilter
Field = 1
Criteria1 = "*Москва*"

А почему? Нужно обязательно указывать это в строчку и с двоеточием?  
Изменено: suricat555 - 04.08.2019 23:02:05
 
Цитата
перечисляю критерии в столбик, то не работает.
Код
Cells.AutoFilter _
Field:=1, _
Criteria1:="*Москва*"
 
это в коде присвоить пареметру процедуры (функции) определенное значение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
suricat555 написал: перечисляю критерии в столбик
Для компилятора каждая строка является самостоятельной единицей кода, поэтому он (компилятор) не относит строки Field = 1 и Criteria1 = "*Москва*" к фильтру. Что бы записать так как хотите Вы нужно использовать нижнее подчеркивание (см пример от Kuzmich, ). Такой прием обычно используется когда строка кода получается не удобно длинной. В Вашем случае это не нужно
Изменено: Sanja - 05.08.2019 07:26:54
Согласие есть продукт при полном непротивлении сторон
 
Цитата
suricat555 написал:
А если я хочу не указывать двоеточия
А если макрос не хочет работать без двоеточий?
Кто кого?  :D
 
Я поняла, спасибо огромное!  :D  А почему у меня не вышло сообщение об ошибке?.. Я же помню, когда я неверно вводила команду, у меня была ошибка 1004. Я хотя бы поняла, в какой строке косяк. А сейчас макрос просто не выполнил команду и не предупредил меня ))))))  
 
А ежели-бы добавили строку Option Explicit, тогда бы предупредил
Код
Option Explicit

Sub qq()
Cells.AutoFilter
Field = 1
Criteria1 = "*Москва*"
End Sub
 
Спасибо! Сегодня попробую. Сейчас нет доступа к excel. Наверное надо бы в любом макросе эту строку вставлять. Так надежнее ))
 
Цитата
suricat555 написал:
Наверное надо бы в любом макросе эту строку вставлять. Так надежнее
Золотые слова, хоть в девиз форума! :)  
Владимир
Страницы: 1
Наверх