|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
Здравствуйте. Столкнулся с тем, что на листе макросов xlExcel4MacroSheet (может еще где): Код: vbnet 1.
То есть, таким макаром проверить, что ячейка находится на листе не выйдет. А она там есть :) Как еще можно проверить, что Range находится на Worksheet? Придумал только сравнивать полные Address. Intersect это уже перегиб, по-моему. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 13:56 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
Если активное окно содержит НЕ рабочий лист, то ActiveCell даёт ошибку. Если активное окно содержит рабочий лист, то ActiveCell без указания конкретного листа всегда указывает на активную ячейку активного листа. Иными словами, показанная проверка не имеет смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 14:04 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
AkinaЕсли активное окно содержит НЕ рабочий лист, то ActiveCell даёт ошибку Никакой ошибки мне не выдает, на листе макросов. Спокойно читаются и ячейка, и значение. Вопрос не про активное, а про Range на Worksheet. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 14:15 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
Сын вождяНикакой ошибки мне не выдает А вот встроенная документация полагает, что Excel Developer Reference Application.ActiveCell Property Returns a Range object that represents the active cell in the active window (the window on top) or in the specified window. If the window isn't displaying a worksheet, this property fails. Read-only. Абсолютно тот же текст - и в Window.ActiveCell Property. А если не выдаётся ошибка - то, скорее всего, Вы отключили обработчик ошибок каким-нибудь многозначительным OnError Resume Next... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 15:09 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
[quot Akina]Сын вождя...А вот встроенная документация полагает, что... При чем тут скрытые листы? Нажали кнопку [+] и создали лист макросов. Заметили, о не скрыт :) Смотрим его ActiveCell... Да, зря я упомянул Active всякие. Повторюсь, вопрос о способах проверки нахождения Range на Worksheet. Ну или что Worksheet1 это Worksheet2. Считаем что Worksheet1 is Worksheet2 не работает. А оно и не работает, иногда. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 15:49 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
Сын вождявопрос о способах проверки нахождения Range на Worksheet. Ну или что Worksheet1 это Worksheet2. Считаем что Worksheet1 is Worksheet2 не работает. А оно и не работает, иногда. Имена листов в пределах книги уникальны. Так что Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 16:23 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
Сын вождяПри чем тут скрытые листы?Не при чем. Откуда Вы их вообще взяли? Нигде про них намека нет. А вот отличие типа Worksheet от MacroSheet очень даже есть. Поэтому сравнение Worksheet(даже если оно пляшет от ActiveCell) всегда будет давать False, т.к. типы-то разные. Создайте не лист макросов, а обычный лист и проверьте там. Все будет работать как предполагалось. Именно на это Вам так упорно намекает Akina. То, что ошибки нет - это может и косяк, но Microsoft упорно вещает, что использование листов макросов более не актуально и оставлено исключительно для совместимости(притом сразу после появления встроенного VBA). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 16:29 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
The_Prist...отличие типа Worksheet от MacroSheet...типы-то разные... В дебаггере, я их всех вижу как Worksheet. И работает лист макроса как Worksheet. Как только я учел глюк из первого поста, все макросы заработали. Больше ни одной ошибки. Листа макросов, по всему моему коду, обрабатывается как Worksheet. The_Prist...То, что ошибки нет - это может и косяк... Так я и хочу учесть этот косяк :) Оптимальным способом. Главное - чтобы работало. А оно НЕ РАБОТАЛО! Пока, мы только обсуждаем, почему же оно не работает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 16:49 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
Сын вождяВ дебаггере, я их всех вижу как WorksheetЯ с этим не спорю. Дебаггер порой и не такое может показать, однако это не мешает появляться ошибкам :) Akina выше показал, как можно произвести сравнение без учета типа листов: по имени. Это вполне приемлемый вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 17:04 |
|
Не работает ActiveCell.Worksheet is ActiveSheet
|
|||
---|---|---|---|
#18+
The_Prist...произвести сравнение без учета типа листов: по имени... Имена уникальны только в пределах книги. Написал такое: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2017, 05:11 |
|
|
start [/forum/topic.php?fid=61&msg=39516635&tid=2172580]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 143ms |
0 / 0 |