Страницы: 1
RSS
Код VBA cортировки таблицы в 32-битной не работает в 64-битной версии
 
Добрый день!
Подскажите почему ниже код написанный в 32 версии, отказывается работать на 64 машинах и как поправить эту проблему.
Им удаляю записи за текущий день во втором столбце.
Код
  Sheets("БД").ListObjects("БД").Range.AutoFilter Field:=2, Criteria1:= _
        xlFilterToday, Operator:=xlFilterDynamic 
 ActiveSheet.ListObjects("БД").DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Макрорекодер выдает нечто такое и сразу нерабочее
Код
    ("БД").Select
    .Forecast("БД").ActiveSheet. Index := 2, BringToFront := xlFilterToday, Count _
        := xlFilterDynamic
Изменено: vlad000 - 18.03.2019 14:51:30 (Добавил)
 
vlad000, здравствуйте!
1. ActiveSheet и Sheets("БД") иногда не одно и то же
2. Макрорекордер при фильтрации таблички по текущей дате в 1 столбце выдаёт
Код
ActiveSheet.ListObjects("БД").Range.AutoFilter Field:=1, Criteria1:=1, Operator:=11, Criteria2:=0, SubField:=0
, а не то, что вы написали
3. Можно ещё вот так:
Код
ActiveSheet.ListObjects("БД").Range.AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(2, "3/19/2019")
, заменяя в Array "3/19/2019" на нужную дату
4. Если умная таблица на листе одна, то можно без имени ActiveSheet.ListObjects(1) или WorkSheets("имя листа").ListObjects(1), если лист не активный, а другой…
Изменено: Jack Famous - 19.03.2019 12:12:11
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,благодарю за ответ! Дело не в разрядности, а в "нейких багах"(или выше моего понимания конструкциях) в VBA
Протестировал на другом офисе с 64 битами.. Все работает как и должно работать :)

НО вот что ЭТО и почему РАБОЧИЙ код не работает на конкретной машинке, так и не разобрался :cry: , пришлось переписать код с другой логикой.  
 
vlad000, код картинкой?
А не работает - нет родителя Forecast... ActiveSheet к чему?
 
vikttur,скрин сделал специально, чтобы передать что макрорекодер мне нарекодил..
а на другой машине нормально рекодит и летает.. в этом и осталась тайна
Изменено: vlad000 - 19.03.2019 11:39:28
 
vlad000, я не верю, что макрорекордер записал код именно так, как у вас на картинке… Там всё перепутано
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, зуб даю! Сам увидел и почесал затылок!
Изменено: vlad000 - 19.03.2019 12:39:53
Страницы: 1
Наверх