Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2011, 00:33   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Как перейти из макроса Книги в макрос листа

Как перейти из макроса Книги в макрос листа?
Есть условие в макросе ЭтаКнига:
Код:
If x.Row = 907 Or x.Row = 908 Or x.Row = 909 _
Or x.Row = 951 Or x.Row = 952 Or x.Row = 953 _
Or x.Row = 995 Or x.Row = 996 Or x.Row = 997 Then Переход на макрос Листа1
valerij вне форума Ответить с цитированием
Старый 29.04.2011, 00:58   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Т.е. макрос надо запустить? Может, поместить его в модуль? А дальше просто имя его написать или Call ...
motorway вне форума Ответить с цитированием
Старый 29.04.2011, 21:16   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Т.е. макрос надо запустить? Может, поместить его в модуль? А дальше просто имя его написать или Call ...
Спасибо, нашел я выход из положения, применил кучу GoTo, все ОК.
valerij вне форума Ответить с цитированием
Старый 29.04.2011, 23:34   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Может вместо кучи так?

Код:
Sub tt()
Dim x As Range
Set x = [a908]
Select Case x.Row
Case 907 To 909, 951 To 953, 995 To 997: Лист1.macro1
Case Else: MsgBox "Else"
End Select
End Sub
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.04.2011, 23:47   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

или так:
Код:
if (x.row mod 44 - 28)^2<=1 and (x.row-950)^2<2500 then Лист1.macro1
правда выглядит ущербно - ни одного GoT0 нет
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.04.2011, 00:05   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если это
(x.row mod 44 - 28)^2<=1
я ещё понял, то как это
(x.row-950)^2<2500
родилось?
Почему именно эти числа?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 30.04.2011, 00:08   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
правда выглядит ущербно - ни одного GoT0 нет
Мало того, что выглядит весьма скромно, так ещё и не понятно, что в этом коде надо менять при очередном переписывании макроса в следующем месяце.

То ли дело - 1-го числа каждого месяца заменил полсотни строк с GoTo - и макрос опять работает как ни в чём ни бывало
EducatedFool вне форума Ответить с цитированием
Старый 30.04.2011, 00:23   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ибо опыт есть критерий истины (единички напротив чисел, для которых выполнились оба условия)
900 0 934 0 967 0
901 0 935 0 968 0
902 0 936 0 969 0
903 0 937 0 970 0
904 0 938 0 971 0
905 0 939 0 972 0
906 0 940 0 973 0
907 1 941 0 974 0
908 1 942 0 975 0
909 1 943 0 976 0
910 0 944 0 977 0
911 0 945 0 978 0
912 0 946 0 979 0
913 0 947 0 980 0
914 0 948 0 981 0
915 0 949 0 982 0
916 0 950 0 983 0
917 0 951 1 984 0
918 0 952 1 985 0
919 0 953 1 986 0
920 0 954 0 987 0
921 0 955 0 988 0
922 0 956 0 989 0
923 0 957 0 990 0
924 0 958 0 991 0
925 0 959 0 992 0
926 0 960 0 993 0
927 0 961 0 994 0
928 0 962 0 995 1
929 0 963 0 996 1
930 0 964 0 997 1
931 0 965 0 998 0
932 0 966 0 999 0
933 0 1000 0
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.04.2011, 00:28   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
То ли дело - 1-го числа каждого месяца заменил полсотни строк с GoTo - и макрос опять работает как ни в чём ни бывало
)))) одно обидно, что в году всего 12 месяцев, а-то программировал бы и программировал... если человек беззаветно влюблен в это дело, почему бы и нет?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.04.2011, 00:54   #10
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
)))) что в году всего 12 месяцев,
Но пасха, один раз в году и когда она бывает, я понятия не имею и только ради этого мне пришлось менять чуток макрос, че вы господа, все против GoTo? Я, например, очень хорошо ориентируюсь с этим оператором, ну очень удобен...
А на след. месяц, макрос, взял с января(там точно, наверное, пасхи не будет) и опять до конца года, тока цены успевай менять.

Последний раз редактировалось valerij; 30.04.2011 в 00:59.
valerij вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос активной книги открывает книги xlsm содержащих auto_open Daren Microsoft Office Excel 0 28.01.2011 09:34
Как запустить макрос экселя из макроса ворда... Rossoman Microsoft Office Excel 1 08.05.2010 20:51
Как средствами VBA сделать точную копию листа и вставить ее в конец книги? Pavel_Ine Microsoft Office Excel 13 10.06.2009 19:39
как заставить работать макрос при защите листа qwertyuzer Microsoft Office Excel 4 11.02.2009 15:20
снятие пароля с книги/листа из другой книги? Bezdar Microsoft Office Excel 3 25.12.2008 11:59