С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/88: Рейтинг темы: голосов - 88, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 19

Ошибка object variable or with block variable not set

10.10.2016, 13:30. Показов 16987. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет!

Столкнулся с проблемой - пишу код для приведения выгрузки из базы данных в вид для подгрузки в MRP систему

на определенном этапе формируется таблица с датами в первой строке, артикулами в первом столбце и количествами потребления на пересечении строк и столбцов

необходимо опрелелить адрес ячейки с определенной датой и дальше плясать от нее.

(в примере ниже дата произвольная и присваивается изнутри кода, но потом юзер будет вставлять определенную дату в открывающемся окне ввода)

вот такая часть кода

Visual Basic
1
2
3
4
5
Dim dates As Date
dates = "14.10.2016"
Range("A1:XFD1").Find(dates, , xlValues).Select
xa = ActiveCell.Row 'stroka
ya = ActiveCell.Column 'stolbets
и дальше по тексту..

проблема в том, что при присвоении переменной dates определенной даты, возникает ошибка
"object variable or with block variable not set"

то есть, если я присваиваю даты 10.10.2016, 11.10.2016, 12.10.2016 - все работает и макрос выдает конечный нужный результат

но при присвоении даты 13.10.2016 и дальше --> вылазит эта ошибка.

буду благодарен за помощь!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2016, 13:30
Ответы с готовыми решениями:

Ошибка Run Time Error 91 (Object variable or block variable not set)
Добрый день! Есть код для VBA Outlook для открытия файла Excel, копирования из него диапазона, и вставки в другой файл, который...

Создание класса и ошибка 'object variable or with block variable not set'
Всем привет! Почему когда описываешь класс вот так: Dim a, b, c As Integer Private Sub Class_Initialize() a = 1 b = 1

Что за ошибка object variable or with block variable not set
У меня оффис 2010. Подскажите почему выдает ошибку object variable or with block variable not set и показывает wsDict.Select ...

16
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
10.10.2016, 13:40
Может стоит между Find и Select добавить проверку нашлось ли чего?

Добавлено через 5 минут
Да и Select нужен ли вообще?
как-то так можно:
Visual Basic
1
2
3
4
Set rx = Range("A1:XFD1").Find(dates, , xlValues)
If rx Is Nothing Then Exit Sub
xa = rx.Row 'stroka
ya = rx.Column 'stolbets
0
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 19
10.10.2016, 13:44  [ТС]
не стал заморачиваться, ибо все даты фиксированные
дальше по алгоритму суммирование в "искомую" дату потребления всех предыдущих дат

Добавлено через 4 минуты
потестил,

получается примерно то же самое - при присвоении даты 13.10.2016 и дальше rx - nothing и макрос прекращает работу
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
10.10.2016, 13:48
А ежели так

Visual Basic
1
Set rx = Range("1:1").Find(dates, , xlFormulas)
0
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 19
10.10.2016, 13:59  [ТС]
я так понимаю ошибка не в правильности обозначения области, в которой ищется значение, а именно в самом значени
все равно rx присваивается Nothing

чем могут отличаться даты 10.10.2016-12.10.2016 от 13.10.2016- и далее?
0
19 / 19 / 5
Регистрация: 23.04.2014
Сообщений: 72
10.10.2016, 14:12
а вот так работает:

Visual Basic
1
2
dates = CDate("14.10.2016")
Set q = Rows("1:1").Find(dates, , xlFormulas)
Наверное именно это имел ввиду pashulka
Цитата Сообщение от pashulka Посмотреть сообщение
А ежели так
только вместо rows написал range
0
Заблокирован
10.10.2016, 14:13
Tim_Coyote, приложите файл с фрагментом данных и проблемным макросом и получите ответ...
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
10.10.2016, 14:16
Tim_Coyote, Диапазон поиска был изменён для того, чтобы макрос работал и в старых версиях Excel, где столбцов было меньше. Что касается даты, то макрос не находит 13-й месяц.

Было бы неплохо увидеть файл, содержащий искомые данные (1 строку достаточно), разумеется, без конфиденциальных данных.
0
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 19
10.10.2016, 14:19  [ТС]
quende, неа тоже не хочет, так тоже пробовал. rx все равно nothing
Shersh, прикладываю
Вложения
Тип файла: xlsx test (2).xlsx (9.4 Кб, 10 просмотров)
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
10.10.2016, 14:19
Цитата Сообщение от quende Посмотреть сообщение
Наверное именно это имел ввиду pashulka
Нет, именно Range. Если бы я хотел указать первую строку, то написал бы Rows(1) , хотя это и непринципиально.
0
19 / 19 / 5
Регистрация: 23.04.2014
Сообщений: 72
10.10.2016, 14:21
Цитата Сообщение от Tim_Coyote Посмотреть сообщение
quende, неа тоже не хочет, так тоже пробовал. rx все равно nothing
так работает же...
Visual Basic
1
2
3
4
5
Sub qweqwe()
    dates = CDate("12.10.2016")
    Set rx = Rows("1:1").Find(dates, , xlFormulas)
    Debug.Print rx
End Sub
0
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 19
10.10.2016, 14:24  [ТС]
quende, 12.10.2016 работает, а начиная с 13.10.2016 не работает

Добавлено через 1 минуту
Цитата Сообщение от pashulka Посмотреть сообщение
что касается даты, то макрос не находит 13-й месяц
то есть возможно это какие-нибудь настройки дат по регионам?
0
19 / 19 / 5
Регистрация: 23.04.2014
Сообщений: 72
10.10.2016, 14:25
Цитата Сообщение от Tim_Coyote Посмотреть сообщение
quende, 12.10.2016 работает, а начиная с 13.10.2016 не работает
ну вот же пробую в Вашем же файле!
Миниатюры
Ошибка object variable or with block variable not set  
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
10.10.2016, 14:27
Лучший ответ Сообщение было отмечено Tim_Coyote как решение

Решение

Tim_Coyote, Предлагаю альтернативный вариант

Visual Basic
1
2
3
4
5
6
7
Dim dates As Date, iColumn As Variant
dates = #10/14/2016# '"14.10.2016"
 
iColumn = Application.Match(CDbl(dates), [1:1], 0)
If Not IsError(iColumn) Then
   MsgBox "Дата нашлась " & Cells(1, iColumn).Address
End If
0
19 / 19 / 5
Регистрация: 23.04.2014
Сообщений: 72
10.10.2016, 14:28
Цитата Сообщение от Tim_Coyote Посмотреть сообщение
то есть возможно это какие-нибудь настройки дат по регионам?
а вот это, кстати, возможно.
задавайте дату через DateValue
Visual Basic
1
DateValue(#10/13/2016#)
0
0 / 0 / 0
Регистрация: 10.10.2016
Сообщений: 19
10.10.2016, 14:44  [ТС]
quende, у меня почему-то не работает((
по поводу datevalue погуглю, не знаю что это и как работает

pashulka, альтернативный вариант сработал, только я не до конца понимаю что там происходит, тоже буду разбираться

спасибо большое за помощь!
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
10.10.2016, 14:51
Tim_Coyote, Там просто используется стандартная функция рабочего ПОИСКПОЗ()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.10.2016, 14:51
Помогаю со студенческими работами здесь

Ошибка: <Object variable or With block variable not set>
Ну что здесь может не нравиться? Set Поиск = Worksheets(&quot;Лист1&quot;).Columns(&quot;H:H&quot;).Find(what:=ячк) Стр1 = Поиск.RowСтр1=10, всё вроде...

Ошибка Object variable or With block variable not set
Класс SetOfPoint: Private S As Collection ' Addes point. Public Sub Add(ByRef obj As GPoint) Dim t As Boolean t =...

Ошибка 91: Object variable or With block variable not set
Что за ошибка в коде? Run-time error '91': Object variable or With block variable not set Ошибка на 57 строке: w.Activate ...

Ошибка: Object variable or With block variable not set
необходимо создать форму авторизации к access подключила SQL Server(БД находится на нем), в access создала запрос SELECT...

Ошибка: Object variable or With block variable not set
всем доброго времени суток! написал макрос для Excel, который из контекстного меню ячейки ищет фильм на сайте: Private Sub...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru