|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
19.06.2008, 14:23 | #11 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
1) Условие в операторе If проверяется всегда. Тогда как в Select Case - по порядку, до первого True. Что гораздо быстрее. Да и запись короче.
2) Если необходимо, чтобы вызываемая процедура не изменяла переменные, полученные как аргументы, то нужно, чтобы аргументы передавались по значению, а не по ссылке. Для этого служит ключевое слово ByVal, добавляемое перед аргументом. Тогда вызываемая процедура будет управлять копией переданных данных, а не самими данными. А Target - это адрес ячейки (диапазона), возвращаемый событием (в нашем случае - Worksheet_Change(ByVal Target As Range))
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 19.06.2008 в 14:27. |
20.06.2008, 10:52 | #12 | |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
Цитата:
Кое чего понял, но при написании макроса и этой строки, навряд ли человек использовал такую цитату. Я хочу понять, как это говорится. Примерно так: Если производится действия в диапазоне "......", то применить макрос с именм "....." Вот Вы, пишите макрос, какие слова, Вы бы произнесли, прежде чем вставить эту строчку?(В Ваших м-сах, то же есть ~ такие строки) If Not Intersect(Target, Sh.Range("B3:K1489")) Is Nothing Then Macro_Change Sh |
|
20.06.2008, 11:05 | #13 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Если пересечение диапазонов Target и Sh.Range("B3:K1489") не есть "ничего" (т.е. пересекаются), тогда...
Чем шире угол зрения, тем он тупее.
|
|
20.06.2008, 11:25 | #14 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
Ну SAS!!
Я уже не знаю как и сказать!! Ну пример: a = Range("H1") b = Range("B1") Мы говорим, присвоить ~a и b, значение яч. ..... Теперь нам надо узнать какая из них больше числа 31 Мы автоматом говорим Если "а" больше 31 то присвоить а=0 А тут чего сказать надо: If Not Intersect(Target, Sh.Range("B3:K1489")) Is Nothing Then Macro_Change Sh и дальше If Not Intersect(Target, .Cells) Is Nothing Then САС, это я пытаюсь переделать макрос в книге, где формулы, заменяются значениями и тут стал, перед этим If Not Intersect |
20.06.2008, 11:47 | #15 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
А я уже не знаю,что Вам не понятно.
Вот, например, для нашего случая, где Target - это одна ячейка, можно сказать так: если Target принадлежит диапазону Sh.Range("B3:K1489"), то выполнить то, что после Then. При чем здесь сравнение a и b?
Чем шире угол зрения, тем он тупее.
|
21.06.2008, 01:29 | #16 | |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
Цитата:
САС, давайте продолжим, еще один вопросик, вот фрагмент If Not Intersect(Target, Range("D3:D24")) Is Nothing Then a = Target.Address MsgBox a b = Cell("a") MsgBox b End If End Sub Почему так ошибка? Вроде все логично, в диапазоне "D3:D24" вводим чило, "а" -адрес ячейки, вставляем адрес в ячейку, должны получить, вводимое число. Вроде удобно, не надо создавать цикл для диапазона "D3:D24" |
|
21.06.2008, 01:44 | #17 | |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
попробуйте так
Код:
но и в этом случае Вы получили бы ошибку №13 - "несоответствие типов", т.к. Цитата:
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 Последний раз редактировалось VictorM; 21.06.2008 в 09:43. |
|
21.06.2008, 11:53 | #18 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
|
21.06.2008, 12:57 | #19 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
1.ошибка синтаксиса Cell - Cells
2.ошибка несоответствие типов
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять в чем проблема (код) | diznt | Помощь студентам | 2 | 03.08.2008 10:20 |
Помогите понять как это реализовать! | krasovskiy | Фриланс | 6 | 15.05.2008 14:13 |
Не могу понять задание | amandra | Помощь студентам | 11 | 16.10.2007 10:24 |
Помогите понять код | MaGiCeYe | Помощь студентам | 1 | 02.04.2007 19:57 |
не могу понять... | Dutchman | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 14.12.2006 07:14 |