![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
![]()
Как это выразить по русски?
If Not Intersect(Target, Sh.Range("B3:K1489")) Is Nothing Then Macro_Change Sh |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
Если дословно, где-то так:
If Not Intersect - если не пересекается (не встречается) (Target, Sh.Range("B3:K1489")) изменяемая ячейка в диапазоне Is Nothing Then Macro_Change Sh - делать нечего, запускаем макрос
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
![]() Цитата:
Если не пересекается, кто, с чем, как, не пересекается для чего? Меняю диапазон В3:В4 по барабану!(нет, не по барабану) Может так мона сказать: Если производится действия в диапазоне "......", то применить макрос с именм "....." Последний раз редактировалось valerij; 19.06.2008 в 00:30. |
|
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
здесь Target - ячейка, в которой произошло изменение
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
#5 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]() Цитата:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
![]() |
![]() |
#6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Как раз наоборот.
Дословно: "If Intersect(rang1, rang2) Is Nothing Then..." - это означает, что если нет общих ячеек (не пересекаются) у диапазонов rng1 и rng2, то выполнить то, что после Then. А в приведенном примере стоит "If Not Intersect...". Т.е. если пересечение диапазонов "НЕ НИЧЕГО" (есть общие ячейки), то выполнить Then...
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#7 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
![]()
SAS!!
Ни чего не понял. Так в оригинале: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range) Select Case Sh.Index Case 1 To 13 If Not Intersect(Target, Sh.Range("B3:K1489")) Is Nothing Then 'Macro_Change Sh Это варажение "If Not Intersect...." очень часто встречаю, а смысла не пойму, почему, красным, и в первой строке объявляется? Раньше, когда не применялся "'Macro_Change Sh", все равно это выражение было, но без синего. Как это все, звучит в алгоритме? |
![]() |
![]() |
#8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
с SAS888 трудно спорить. Особенно если я не прав. Пытался завести всех в заблуждение. У меня одно оправдание - это без злого умысла. Невнимательность...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
#9 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
valerij. Смысл выражений If Intersect(rang1, rang2) Is Nothing Then... и If Not Intersect(rang1, rang2) Is Nothing Then... достаточно доходчиво объяснен в посте №6. Трудности понимания у Вас, похоже, в конструкции If...Then...
Так вот: возможно два варианта (не считая варианты с ElseIf и Else). 1) Если при выполнении условия требуется выполнить всего один оператор (действие), то все записываем в одну строку. Например: If A >B Then Exit Sub ' (End If не требуется) 2) Если при выполнении условия требуется выполнить несколько операторов (действий), то конструкция такова: If A > B Then 'Первое действие ... ... 'Последнее действие End If
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
#10 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
![]()
SAS
Нет, эту конструкцию, я понимаю, беда в том, что, та, конструкция, отличается от If...Then, какие то пересечение, к чему? Я меняю тот диапазон на "Е3:Е1489" и все работает, меняю на "B3:В4", то же все работает, кроме 'Macro_Change Sh, но если я в ручную поставлю в "Е3" значение, все работает. Какой смысл в такой замысловатой записи, почему не If...Then Почему, зачем этот Target в первой строке(ByVal Target)? |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу понять в чем проблема (код) | 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 |