Игорь, ну ты чего? 1. Вопрос про VBA, а ты его в неформалку всунул. В правилах этой ветки что написано?
Цитата
В этом разделе разрешено общение на любые темы, кроме обсуждаемых в других разделах форума
2. Даже если тему в ветку VBA перенести, то это будет очередная помойка типа Табель учета рабочего времени Давай уж нормально все делать? И, кстати, если будет отдельный вопрос на каждую такую
, то и тем, кто потом будет искать подобное, найти гораздо легче будет.
Игорь, ну ты чего? 1. Вопрос про VBA, а ты его в неформалку всунул. В правилах этой ветки что написано?
Цитата
В этом разделе разрешено общение на любые темы, кроме обсуждаемых в других разделах форума
2. Даже если тему в ветку VBA перенести, то это будет очередная помойка типа Табель учета рабочего времени Давай уж нормально все делать? И, кстати, если будет отдельный вопрос на каждую такую
ок. подумал, что все таки получится типа FAQ по VBA для начинающих. ну раз так перенеси в вопросы по VBA .Заголовок : Value. Разница с ним и без него
ок. подумал, что все таки получится типа FAQ по VBA для начинающих. ну раз так перенеси в вопросы по VBA .Заголовок : Value. Разница с ним и без негокитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Value для Range - свойство по умолчанию, т.е. может быть опущено в операциях по присвоению и сравнению значений в ячейках. И дальше система сама разбирается по контексту, где имеется в виду значение ячейки, а где сам объект Range. Поэтому Range("A1") = 15 это то же самое, что Range("A1").Value = 15. Или даже Range("A1").Value(10) = 15 - немногие знают, что у Value есть параметр! 10 - это собственно значение (и тоже по умолчанию), а 11 и 12 отвечают за XML, можно попробовать в окне отладки выполнить: ? Range("A1").Value(11)
Я в программах предпочитаю писать явно: Range("A1").Value - мне не сложно, а последующему читателю понятнее.
Value для Range - свойство по умолчанию, т.е. может быть опущено в операциях по присвоению и сравнению значений в ячейках. И дальше система сама разбирается по контексту, где имеется в виду значение ячейки, а где сам объект Range. Поэтому Range("A1") = 15 это то же самое, что Range("A1").Value = 15. Или даже Range("A1").Value(10) = 15 - немногие знают, что у Value есть параметр! 10 - это собственно значение (и тоже по умолчанию), а 11 и 12 отвечают за XML, можно попробовать в окне отладки выполнить: ? Range("A1").Value(11)
Я в программах предпочитаю писать явно: Range("A1").Value - мне не сложно, а последующему читателю понятнее.Gustav
Я тоже на вражеском ничего не понимаю. Зайди Хромом, там есть такая кнопуля нажми на нее и все переведется. Пусть немного корявенько, но общий смысл ясен
Я тоже на вражеском ничего не понимаю. Зайди Хромом, там есть такая кнопуля нажми на нее и все переведется. Пусть немного корявенько, но общий смысл ясен_Boroda_
Sub Разные_способы_адресации_к_одной_ячейке_D1() Debug.Print [D1].Address Debug.Print Range("D1").Address Debug.Print Cells(1, 4).Address Debug.Print Cells(1, "D").Address Debug.Print Cells(4).Address 'D1 ' одноиндексная нумерация змейкой по всему листу, по строкам, в Excel 2007 и выше в каждой строке находится 16384 ячейки
Debug.Print Cells(16388).Address 'D2 End Sub
[/vba] Первые 5 операторов выведут в Окно отладки один и тот же адрес - $D$1. Если вместо Address укажем Value, то получим 5 форм обращения к значению ячейки D1. Если не укажем Value - то еще 5 форм. Итого 10 вариантов. Все абсолютно корректные, но использовать что-то конкретное надо исходя из задачи. Если, например, нужен перебор в цикле, то явно напрашивается использование Cells(i, j). Форма [D1] в этом смысле самая бесперспективная, но она же и самая короткая по символам, что хорошо в небольших макросах на скорую руку, типа демонстрационных примеров.
P.S. Хотя! Прошёл по ссылке Александра - беру свои слова про "бесперспективность" обратно. Форма [MySel].Address с заранее заданным MySel очень даже интригующая!
[vba]
Код
Sub Разные_способы_адресации_к_одной_ячейке_D1() Debug.Print [D1].Address Debug.Print Range("D1").Address Debug.Print Cells(1, 4).Address Debug.Print Cells(1, "D").Address Debug.Print Cells(4).Address 'D1 ' одноиндексная нумерация змейкой по всему листу, по строкам, в Excel 2007 и выше в каждой строке находится 16384 ячейки
Debug.Print Cells(16388).Address 'D2 End Sub
[/vba] Первые 5 операторов выведут в Окно отладки один и тот же адрес - $D$1. Если вместо Address укажем Value, то получим 5 форм обращения к значению ячейки D1. Если не укажем Value - то еще 5 форм. Итого 10 вариантов. Все абсолютно корректные, но использовать что-то конкретное надо исходя из задачи. Если, например, нужен перебор в цикле, то явно напрашивается использование Cells(i, j). Форма [D1] в этом смысле самая бесперспективная, но она же и самая короткая по символам, что хорошо в небольших макросах на скорую руку, типа демонстрационных примеров.
P.S. Хотя! Прошёл по ссылке Александра - беру свои слова про "бесперспективность" обратно. Форма [MySel].Address с заранее заданным MySel очень даже интригующая!Gustav
[/vba] и так далее. Поискал по интернету ( правда недолго и невнимательно ) объяснялок не нашел . если есть у кого ссылки ( не на вражеском- не обучен) скиньте плз
поднимем тему: а в чем разница между [vba]
Код
Value = Target.Value
[/vba] и [vba]
Код
Value = Rng.Value
[/vba]и [vba] и
Код
.value = .value
[/vba] и так далее. Поискал по интернету ( правда недолго и невнимательно ) объяснялок не нашел . если есть у кого ссылки ( не на вражеском- не обучен) скиньте плзкитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Игорь: Value = Target.Value - попытка присвоить переменной Value значение активной ячейки. Категорически не рекомендую использовать в качестве названий переменных зарезервированные слова. Value = Rng.Value та же фигня, только в качестве аргумента ранее объявленный диапазон\ячейка. .value = .value - испольуется для преобразования формул в значения.
Игорь: Value = Target.Value - попытка присвоить переменной Value значение активной ячейки. Категорически не рекомендую использовать в качестве названий переменных зарезервированные слова. Value = Rng.Value та же фигня, только в качестве аргумента ранее объявленный диапазон\ячейка. .value = .value - испольуется для преобразования формул в значения. KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сообщение отредактировал KuklP - Пятница, 19.05.2017, 14:41