0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
1

ошибка "Run-time error '91': Object variable or With block variable not set"

01.09.2013, 11:34. Показов 35536. Ответов 10
Метки нет (Все метки)

приветствую!
имеется документ на нескольких листах, заполняется по дням соответственно на многих листах есть даты текущего периода, в начале каждого месяца документ создается заново, для того чтобы не менять дату на каждом листе есть ячейка ввода месяца и года, а по всему документу дата задана =ДАТА(Лист1(год);Лист1(месяц);константа(от1до31))
на одном из листов есть форма ввода данных данные из которой макросом раскидываютя в нужные ячейки в зависимости от даты (забиваемой в ручную).

проблема в том что i = Range("AK5:AK68").Find(n).Activate выдает указанную ошибку, если =ДАТА(Лист1(год);Лист1(месяц);константа(от1до31)) заменить на введенную в ручную дату все работает, подскажите пожалуйста можно ли это как-то починить
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2013, 11:34
Ответы с готовыми решениями:

В момент закрытия формы выводится сообщение "Run-time error '91' Object variable or With-block not set"
Программа запускается - работает - выводит форму. Потом нажимаю крестик на форме (типа закрываю...

Run-time error 91. Object variable or with block variable not set
Добрый день! Я оказался на новом месте, в макросах не разбираюсь совсем. Возникает такая ошибка...

Run time error 91: Object variable or With block variable not set
Здравствуйте, помогите пожалуйста исправить ошибку в макросе. Вот код: Sub findtekst() Dim c As...

Run time error 91: Object variable or With block variable not set (не могу найти ошибку)
Уважаемые форумчане! Пожалуйста посмотрите файл. Подскажите в чем ошибка. В комбобоксе выбираю...

10
6074 / 1318 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
01.09.2013, 12:42 2
Cortes1984, хотите, чтобы я поиграл в телепата?

Ладно... Попробуйте заменить указанную строчку следующим кодом:

Visual Basic
1
2
3
4
5
6
7
8
9
    Dim rng As Range
    Set rng = Range("AK5:AK68").Find(n)
    If rng Is Nothing Then
        MsgBox "Çíà÷åíèå " & n & " íå íàéäåíî â äèàïàçîíå AK5:AK68."
        End
    Else
        rng.Activate
        i = rng.Row
    End If
С уважением,
Aksima
1
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
01.09.2013, 13:25  [ТС] 3
Спасибо Aksima, я понимаю что функция не может найти значение не понимаю почему, во вложении пример, на одном листе все работает на другом нет, отличие только в AK5:AK68

причем при замене содержимого С2 на =дата(год;месяц;день) все равно работает только вариант с AK5:AK68 заполненным в ручную(без формул).
Вложения
Тип файла: rar Книга1.rar (260.2 Кб, 38 просмотров)
0
1584 / 658 / 224
Регистрация: 09.06.2011
Сообщений: 1,333
01.09.2013, 13:54 4
Необходимо поиск осуществлять среди значений:
Visual Basic
1
Range("AK5:AK68").Find(n, LookIn:=xlValues)
2
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
01.09.2013, 13:57  [ТС] 5
Step_UA, спасибо, все заработало.
0
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
05.09.2013, 12:17  [ТС] 6
заметил еще один косяк данной функции
если столбец дат (в данном случае AK5:AK68) является частью группированого диапазона и скрыт, появляется та-же ошибка
также если ширина столбца изменена таким образом что вместо даты отображается "#######" появляется ошибка.
в принципе лечится изменением группировки и установкой автоподбора ширины, но с документом работает несколько человек хочется как то более радикально решить.
0
1584 / 658 / 224
Регистрация: 09.06.2011
Сообщений: 1,333
05.09.2013, 14:00 7
Используйте свою функцию поиска
Visual Basic
1
2
3
4
5
6
7
8
Function Find(R As Range, V) As Range
    For Each c In R
        If c.Value = V Then
            Set Find = c
            Exit Function
        End If
    Next
End Function
замените в макросе
Visual Basic
1
2
3
4
5
Range("AK5:AK68").Find(n)
 на 
Find(Range("AK5:AK68"),n)
или
Find([AK5:AK68],n)
1
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
05.09.2013, 15:39  [ТС] 8
а можно ли эту функцию прописать так чтобы к ней можно было обращаться из разных модулей?
0
1584 / 658 / 224
Регистрация: 09.06.2011
Сообщений: 1,333
05.09.2013, 15:43 9
Visual Basic
1
Public Function ...
1
Айж
10.09.2013, 15:20 10
помогите пожалуйста вроде все норм работало, ничего не меняла кроме названий документов и столбиков
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Main1()
    Dim i As Long, x As Range, Fst As String
    Application.ScreenUpdating = False
    Workbooks("ОРМ.xls").Sheets(1).Activate
    With Workbooks("ОРМск.xls").Sheets(1)
        Columns("G").Interior.ColorIndex = xlNone
        .Columns("G").Interior.ColorIndex = xlNone
        For i = 1 To Cells(Rows.Count, "G").End(xlUp).Row
            Set x = .Columns("G").Find(what:=Cells(i, "G"), LookAt:=xlWhole)
            If Not x Is Nothing Then
                Cells(i, "G").Interior.ColorIndex = 6
                Fst = x.Address
                Do
                    .Cells(x.Row, "G").Interior.ColorIndex = 6
                    Set x = .Columns("G").FindNext(x)
                Loop While Fst <> x.Address 'выделенная в коде строка
            End If
        Next
    End With
End Sub
после запуска выходит ошибка "Run-time error '91': Object variable or With block variable not set", нажимаю на Debug указывает на выделенную в коде строку
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
11.09.2013, 00:06 11
To Айж.
Скиньте лист с прибл. данными - будет точнее ответ.
А так
With Workbooks("ОРМск.xls").Sheets(1)
Вы уверены, что первый лист - тот, который нужно? Может вместо 1 указать точное имя листа? (sheets("[someName]")
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2013, 00:06
Помогаю со студенческими работами здесь

Ошибка Run-time error '91': Object varialble or With block variable not set
Добрый день. При скрытии одной из форм возникает данная ошибка. Дебаг подчеркивает строку, где эта...

Неизвестная ошибка ExcellVBA ACCESS: Run-time error '91' Object varible or With block variable not set
Есть программа код ниже она обращается к данным в ACCESS выдает ошибку Run-time error '91'...

Run-time error '91': Oject variable or with block variable not set
Всем доброго! Есть такая задача: В глобальном модуле Public myRange As Range На 1-й странице...

Ошибка "object variable or With block variable not set" при попытке обращения к форме. VBA Access 7.0.
Добрый день. Данный код Dim frm As Form Set frm = Form_frmAdd_EditWareList ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru