powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос не работает в excel 2007
25 сообщений из 60, страница 2 из 3
Макрос не работает в excel 2007
    #36623073
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlthТо, что "прокатывает" в 2003-м (который, видимо, в контексте поиска "берёт" для аргумента свойство диапазона Value как свойство по умолчанию), может не сработать в 2007-м.
Сработает. Представляете, сколько говнокода типа DS_FTD = plan.Cells(i, 3)
ВНЕЗАПНО перестанет работать, если вдруг Value перестанет быть свойством по умолчанию? MS такие проблемы не нужны.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623091
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProSashaMДа, да в M$ сидят идиоты, согласен с вами полностью...

Вы когда-нить пробовали запустить программу, написанную для Access 2.0 в любой следующей версии Access? Более-менее развитая прога работать не будет.
Так что не надейтесь на полную совместимость.Совместимости строго начали придерживаться с 95й версии. С тех пор только формат базы менялся в 2000й и 2007й версии.
Касаемо объектной модели, макросы прошлых версий почти наверняка будут работать в последующих, наоборот — с меньшей вероятностью.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623110
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyСовместимости строго начали придерживаться с 95й версии. С тех пор только формат базы менялся в 2000й и 2007й версии.
Касаемо объектной модели, макросы прошлых версий почти наверняка будут работать в последующих, наоборот — с меньшей вероятностью.
+1
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623124
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сработает. Представляете, сколько говнокода типа DS_FTD = plan.Cells(i, 3)
ВНЕЗАПНО перестанет работать, если вдруг Value перестанет быть свойством по умолчанию? MS такие проблемы не нужны.
Antonariy, не сомневаюсь в том, что Value продолжает оставаться своиством по умолчанию и в 2010-м ))
Исходя из номера сообщения об ошибке, я предположил, что метод Find в 2007-м более чувствителен к типу принимаемого аргумента.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623202
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlth,

Если передаваемый тип не типизирован, значит, принимается тип variant, а из этого следует что ищет соответствие типу. Для примера если в ячейку A1 выставить тип "текст" и поставить значение 1, а в ячейку A2 просто поставить 1 и запустим код и можно убедиться что правильный ответ = 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub TestTypeInCalls()
  Dim TestRange As Range
  Dim Sh As Worksheet
  Set Sh = ActiveSheet
  Value& =  1 
  Set TestRange = Sh.Range(Sh.Cells( 1 ,  1 ), Sh.Cells(Sh.UsedRange.Rows.Count,  1 )).Find(Value)
  If Not TestRange Is Nothing Then _
    MsgBox TestRange.Row
End Sub
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623566
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alisya,

Удивило это:

Код: plaintext
object = plan.Cells(i,  2 )

Object есть служебное слово.... Закончились слова у человечества?

:0)

И вот это:

Код: plaintext
1.
object = plan.Cells(i,  2 )
times = plan.Cells(i,  8 ).Value

Почему в первом случае нет .Value, а во втором - есть? Раскройте пожалуйста тайну природы...

Почему решили присвоить тип Variant переменным object, times, i ?

:0)
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623577
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn
Почему в первом случае нет .Value, а во втором - есть? Раскройте пожалуйста тайну природы...

Почему решили присвоить тип Variant переменным object, times, i ?

:0)

индусский код витиеват и беспощаден в своей нирване
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623596
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу вступиться за автора топика. Помню по прошлым консультациям, она начинающий программист, самостоятельно упорно идет к своей цели, комбинируя метод тыка, консультации, фрагменты найденного кода и т.п., не в пример некоторым тут "студентам".
Так что не стоит ей пенять за код, а мягко объяснить ошибки.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623604
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProХочу вступиться за автора топика. Помню по прошлым консультациям, она начинающий программист, самостоятельно упорно идет к своей цели, комбинируя метод тыка, консультации, фрагменты найденного кода и т.п., не в пример некоторым тут "студентам".
Так что не стоит ей пенять за код, а мягко объяснить ошибки.

это хорошо, значит нирвана не победит её код
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623624
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alisya,

И я бы поостерегся использовать в коде ActiveSheet. VBA не распознает его как класс так, чтобы выпадал список его методов и свойств. И это в целом менее надежно. Лучше обращаться к листу по его имени и/или вводить объект класса Worksheet.

Почему вы иногда ссылаетесь на Worksheets, а иногда на Sheets? У вас там в книге не всегда именно Worksheets?

С чего вдруг выполз тысячелетней давности стиль декларирования переменных (Dim FirstAddress$) посреди совершенно другого их представления?
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623626
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn, приветствую! Давненько не пересекались ))
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623632
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

О, я ни в коем случае не пеняю. Сразу видно, что код неопытного еще автора. It's OK.... Я задаю вопросы, надеясь, что девушка сама сумеет заострить свое внимание на этих "мелочах"...
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623643
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlth,

Привет! Рад тебя "видеть", как и всех остальных на этом форуме!

Я совсем отошел от этого, старею наверно?

:0)
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623650
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProХочу вступиться за автора топика.
Но лучшее для неё будет подсказка такого плана поищи в папке ...\Microsoft Office\Office\1049 файл VBAXL10.CHM в нём описана вся объектная модель Excel
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623705
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь тоже засада :) если запуск идёт не со страницы "result" то Rows.Count в редких случаях будет совпадать со страницей "result"
Код: plaintext
Set blank_cell = result.Cells(result.Range("a" & <B>Rows.Count</B>).End(xlUp).Row +  1 ,  1 )
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623706
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, по-прежнему присутствие lookat вместо ожидаемого LookAt (и наверно ненахождение его, как например LookIn, нажатием F1), говорит, что Microsoft видимо опять прошляпил эту проблему.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623713
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaM,

+1
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623726
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlisyaТакое действительно бывает что макрос напеисанный на excel 2003 не работает на 2007?
Alisya, да, такое бывает. Но приведённый Вами код отношения к этой проблеме не имеет:
без корректировки - этого в обсуждении, по-моему, сказано так и не было - он не будет работать независимо от версии Excel.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623816
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сколько строк на листе в 2007? Long или Integer? Может цикл давится на Long, и поэтому ошибка 13 на Neхt?

Там переменная "i" идет как Variant, цикл ее переводит в Integer, а если строк - Long...
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623844
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, да в нем миллион строк. Надо вводить Long, иначе цикл подавится... Они (циклы) видимо по умолчанию все еще на Integer.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623855
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя он заткнется и на 65536 в 2003-м
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623860
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladConn,
дело в том, что переменная "i" принимает строковое значение.
Вот здесь:
Код: plaintext
i = object.Rows
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623872
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlthVladConn,
дело в том, что переменная "i" принимает строковое значение.
Вот здесь:
Код: plaintext
i = object.Rows


с каких пор у нас количество строк - строковое?
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623902
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, это не количество строк: поскольку "object" - это ссылка на диапазон, состоящий из одной ячейки, то object.Rows возвращает содержимое этой ячейки. Т.е. в случае, если содержимое ячейки - текст, то работа цикла завершается ошибкой 13.
...
Рейтинг: 0 / 0
Макрос не работает в excel 2007
    #36623904
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vlth,

О, нет, нет, нет. Какое бы она ни принимала там, в цикле она будет Integer.

Так девушка еще и переназначает переменную цикла? Nice..
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос не работает в excel 2007
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]