Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Vba ошибка Object variable not set (Error 91)
 
Цитата
Юрий М написал:
Плохое название: что за ошибка?
Новое название:

Vba ошибка Object variable not set (Error 91)
Vba ошибка Object variable not set (Error 91)
 
В общем проблема решилась сама собой :)
изменил строку
DateSh = Array(1, 2)
на
DateSh = Array("1", "2")
и теперь все проходит :)
Цитата
Nordheim
Спасибо! :)
Vba ошибка Object variable not set (Error 91)
 
Цитата
Nordheim написал:
Без файла сложно сказать.
Файл отправить тяжело, сам по себе он работать не будет, так как данные тянет с другого файла, который вешает более 100 мб.
Цитата
Nordheim написал:
А ошибка скорее всего происходит  из за того, что объект не найден
А как так получается что в первый раз находит объект и все отрабатывает, а при второй итерации уже не находит?
Vba ошибка Object variable not set (Error 91)
 
Цитата
Nordheim написал:
И если это отработало, то закомментируйте строку с ошибкой и получите такую же только на следующей строке.
Дело в том что первый цикл со значением 1 отрабатывает, и значение FIO выбирается правильно. А вот на второй инерации при значении i = 2 на строке FIO происходит ошибка. Object variable not set (Error 91)
Vba ошибка Object variable not set (Error 91)
 
Цитата
Юрий М написал:
Плохое название: что за ошибка? Предложите новое - модераторы поменяют.
Как название поменять?
Vba ошибка Object variable not set (Error 91)
 
Здравствуйте!

Есть часть кода:
Код
Application.ScreenUpdating = False
Workbooks.Open Direct
MMBook = ActiveWorkbook.Name
DateSh = Array(1, 2)
For i = 0 To 1
    iRow = 3 'Начало счтетчика для выбора локомотива с БД
    DateSheet = DateSh(i)
    Do Until IsEmpty(Workbooks("Тест.xlsm").Sheets("Локомотив_БД").Cells(iRow, 3))
        Loko = Workbooks("Тест.xlsm").Sheets("Локомотив_БД").Cells(iRow, 3).Value2 
        Area = Workbooks("Тест.xlsm").Sheets("Локомотив_БД").Cells(iRow, 3).Offset(, -1).Value2 
        FIO = Sheets(DateSheet).Columns("A:A").Find(Loko, LookIn:=xlValues).Offset(1, 3).Value2 
        FIO_1 = Sheets(DateSheet).Columns("A:A").Find(Loko, LookIn:=xlValues).Offset(74, 3).Value2  
        FIO_2 = Sheets(DateSheet).Columns("A:A").Find(Loko, LookIn:=xlValues).Offset(59, 3).Value2 
-/-/-/-/-/-/-/-/-

Суть проблемы в следующем Когда i = 0 (первый шаг) DateSheet = 1 программа выполняется, все данные записываются. Но вот на втором шаге когда i=1 DateSheet=2, на строчке FIO = Sheets(DateSheet).Columns("A:A").Find(Loko, LookIn:=xlValues).Offset(1, 3).Value2 возникает ошибка:

Object variable not set (Error 91)
Почему так происходит? Если DateSheet присваивать про сто значения 1, 2, 3, без цикла все работает.
VBA_вставка значения в первую пустую ячейку диапазона
 
Jack Famous, Спасибо большое :) До именно код #9 я ваш использовал, он понятен и рабочий :) SpecialCells(xlCellTypeBlanks) данный метод хорошо использовать если надо работать только со столбцом в целом например "А"
VBA_вставка значения в первую пустую ячейку диапазона
 
Цитата
Jack Famous написал:
Код ? 12345Sub t ()On Error Resume NextRange("I10:I20").SpecialCells(xlCellTypeBlanks)(1).Value2=TextBox1.ValueIf Err Then MsgBox "ОшибкаEnd Sub
Хм.. код интересный короткий, но почему то у меня всегда выдает ошибку, даже если диапазон пустой.
VBA_вставка значения в первую пустую ячейку диапазона
 
Цитата
Jack Famous написал:
я вам дал полностью рабочий макрос. Получается, благодарность за помощь была сарказмом?…
Нет ни какого сарказма. Ваш макрос рабочий,  просто интересно стало почему так происходит :) копаю литературу, ну и попутно спросил у Вас :)
VBA_вставка значения в первую пустую ячейку диапазона
 
Jack Famous,
Подскажи пожалуйста еще:
Код
On Error Resume Next
Range("I10:I20").SpecialCells(xlCellTypeBlanks)(1) = TextBox1.Value
If Err Then Cells(Rows.Count).End(xlUp).Offset(1) = TextBox1.Value
Err.Clear: MsgBox "Ошибка"

Err.Clear: MsgBox "Ошибка" - Выводит сообщение при каждом вводе данных, как мне вывести сообщение только при заполненом диапазоне?  
Изменено: Сергей Ко - 04.12.2019 13:38:22
VBA_вставка значения в первую пустую ячейку диапазона
 
Jack Famous, Спасибо за помощь
VBA_вставка значения в первую пустую ячейку диапазона
 
Думать то я хочу. Я сделал следующем образом:
Код
On Error Resume Next
Range("I10:I20").SpecialCells(xlCellTypeBlanks)(1) = TextBox1.Value
If Err Then Cells(Rows.Count, 1).End(xlUp).Offset(1) = TextBox1.Value
Err.Clear: MsgBox "Ошибка"
Этот код отрабатывает как надо, НО когда диапазон кончается, выводится сообщение, а последнее введеные данные записываются в ячейку А2. Почему это происходит.
Изменено: Сергей Ко - 06.12.2019 09:59:30
VBA_вставка значения в первую пустую ячейку диапазона
 
Код не работает.
Набора значений и не должно быть. Так как значение вводится в текстбокс
VBA_вставка значения в первую пустую ячейку диапазона
 
Цитата
Jack Famous написал:
а я вот что-то не припомню, чтобы вы давали какой-то список значений для примера или файл…Принцип я вам показал - пробуйте
Вот файл с примером. Мне нужно тоже самое только в рамках  Range("I10:I20"). Что бы данные не перезаписывались, и при отсутствии пустой ячейки выводилась ошибка.
VBA_вставка значения в первую пустую ячейку диапазона
 
Цитата
Jack Famous написал:
Код ? 1Range("I10:I20").Value2="Значение"или руками выделить диапазон, набрать значение и нажать "Ctrl+Enter"
Я наверно не правильно выразился, в диапазон всегда вставляется новое значение.
Например вот есть код:
Код
On Error Resume Next  
Columns(1).SpecialCells(xlCellTypeBlanks)(1) = TextBox1.Value  
If Err Then Cells(Rows.Count, 1).End(xlUp).Offset(1) = TextBox1.Value  
Err.Clear 

этот код будет вставлять значение введеные пользователем в столбец А, начиная с первой строки, если строка не пустая, он ее пропустит и впишет значение в следующую пустую. Мне нужно тоже самое но для конкретного диапазона, и что бы за рамки этого диапазона нельзя было выйти.  
Изменено: Сергей Ко - 04.12.2019 11:43:33
VBA_вставка значения в первую пустую ячейку диапазона
 
Здравствуйте!
Суть вопроса, есть некий диапазон пусть будет:
Set aR = Range("I10:I20")
собственно нужно заполнить это диапазон значениями. Но каждое новое значение должно вставляться в первую пустую строчку. Если диапазон заполнен при попытке туда что то записать должна выводиться ошибка. Помогите пожалуйста :)
Изменено: Сергей Ко - 04.12.2019 11:22:46
Поиск и подстановка по нескольким условиям
 
Спасибо за ответы!
Поиск и подстановка по нескольким условиям
 
Цитата
Arturus написал:
В вашей первоначальной формулировке нужно было найти сумму результатов всех вхождений
Вхождений функции ВПР, а эта функция ищет слово ВАСЯ смещается в право на нужную ячейки и выдергивает это значение. Как Вы собрались менять ВПР на СУМЕСЛИ я не понимаю.

Привожу пример Желтым выделено нужные ячейки.
В итогах в ячейке V формула ВПР которая возвращает нужное значение, это формула возвращает только первое вхождение, но в примере видно что значений с номером 244 два, поэтому нужно вывести сумму этих значений.
Изменено: Сергей Ко - 26.07.2017 09:31:53
Поиск и подстановка по нескольким условиям
 
Вы сами себе это как представляете? В куче записей найти нужное значение сместится влево на 4 ячейки узнать нужное значение. А таких значений может быть несколько и их надо сложить
Поиск и подстановка по нескольким условиям
 
Здравствуйте!
Нужно помощь в следующем вопросе
Функции ВПР ищет только первое вхождение по заданному критерию и выдает результат.
А что если в таблице таких вхождений 2 и более? И результат числовой? Тогда нужна сумма этих результатов.
Кто поможет написать макрос который усовершенствует функцию ВПР, и новая функция будет не просто выдавать результат первого вхождения, а выдавать сумму значений всех вхождений?
Объединение строк и удаление дубликата
 
Да все так же в строку
Объединение строк и удаление дубликата
 
Здравствуйте!
Есть 3 списка фамилий, нужно сделать 4-й список ниже, объединив эти 3 списка и удалить повторяющиеся значения.
За ранее спасибо.
Изменено: LLIPAM - 26.04.2017 12:42:02
[ Закрыто] Нужна помощь
 
Есть набор данных в столбце:
460
415
285
320
305
405
235
195/
230
132/
Есть формула:

=СУММПРОИЗВ(--(E4:E17<>0))  Которая возвращает количество не пустых ячеек.
Возможно сделать так что бы формула не считала ячейки с знаком "/"
VBA проверить массив ячеек и выдать ошибку, если в диапазоне есть значение
 
Этот код проверяет на том листе где он создан, нужно проверять на другом листе.
VBA проверить массив ячеек и выдать ошибку, если в диапазоне есть значение
 
Вообщем суть такая нужно проверить диапазон ячеек А5:С20 если хоть в одной ячейки есть любое значение, то выдать ошибку, если все ячейки пустые не выполнять не чего, я знаю как проверить на пустые ячейки, и если ячейка пустая код выдает что такая та ячейка пустая, как этот переделать что он искал не пустые ячейки?
Код
Sub Проверка()
Dim Rng As Range, rCell As Range
    Set Rng = Sheets("лист4").Range("A5:E20")
    For Each rCell In Rng
        If IsEmpty(rCell) Or rCell > 0 Then
            MsgBox "Найдено в ячейке " & rCell.Address(0, 0), 64, "Для сведения"
            Exit For
        End If
    Next
End Sub
Многопользовательская работа
 
В общем ситуация такая, есть файл на сервера куда забиваются данные, необходимо сделать что бы в него могли забивать данные несколько человек одновременно. Вся загвоздка в том, что файл использует формулы массива из другого файла, соответственно ексель на это ругается и говорит нельзя использовать многопользовательский режим, так как есть эти формулы массива. Как это можно обойти?  
Вставка новой строки при помощи VBA в определенное место
 
Спасибо, у меня работает нормально, но товарищ жалуется что работает криво (вставляет не в тот блок)  офис у него 2013 (у меня 2010). У кого еще 2013 офис есть, проверьте? В продолжение темы:
Добавление строк по нажатию кнопки это здорово, но  от этого толку нет, необходимо сразу добавлять формулы в столбец  E. Например C3*D3. Как полагаю примерно таким образом Range("Е3").FormulaLocal = "=С3*В3" но это поставит формулу в определенное место. Как сделать что бы эта формула вставлялась в новую ячейку Е?
Вставка новой строки при помощи VBA в определенное место
 
Здравствуйте!
Есть файл test1, в нем 5 таблиц, и 5 кнопок, нужно реализовать следующие:
Нажав на кнопку добавлялась строка перед итогом в соответствующей таблице.
Например нажав кнопку2, строку добавилась перед словом "Итого:" в таблице Работа1.
нажав кнопку3, строку добавилась перед словом "Итого:" в таблице Работа2. и т.д.
За ранее спасибо!
Страницы: 1
Наверх