Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - [решено] Excel vba не стартует код поиска между книгами

Ответить
Настройки темы
Разное - [решено] Excel vba не стартует код поиска между книгами

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: xlsx БАЗА_ВП.xlsx
(8.4 Kb, 3 просмотров)
Тип файла: xlsx Приказ.xlsx
(8.0 Kb, 3 просмотров)
Есть две книги..
в файле "Приказ" две подсвеченые ячейки с них забираются данные.
в файле "БАЗА" в столбе С проводится поиск номера и если он есть проводится смещение в право от активной ячейки на 17 ячеек и вставляються данные.
мой макрос не работает,,,, Дайте пожалуйста подсказку почему ?

макрос;

Sub KOD()

Dim myPhrase As Range, myCell As Range, vstavkaKod As Range, poiskcell As Range, Obmen As Range

myPhrase = Worksheets("Приказ").Range("B18")
vstavkaKod = Worksheets("Приказ").Range("K10")

ActiveWorkbooks.Open Filename:="D:\робота\1\робота\БАЗА_ВП.xlsx"
Worksheets("13_11").Activate
Set poiskcell = Workbooks("БАЗА_ВП").Worksheets("13_11").Range("C1:C")
Set myCell = poiskcell.Find(myPhrase)
If Not myCell Is Nothing Then
MsgBox "Адрес найденной ячейки: " & myCell.Address
Obmen = Range(ActiveCell.Address).Offset(, 17)
Obmen.Value = vstavkaKod.Value
Workbooks("БАЗА_ВП.xlsx").Save
Else
MsgBox "Не найдено"
Workbooks("БАЗА_ВП.xlsx").Close
End If
End Sub

Отправлено: 16:34, 10-08-2022

 

Динохромный


Contributor


Сообщения: 630
Благодарности: 300

Профиль | Отправить PM | Цитировать


Цитата vetold74:
Дайте пожалуйста подсказку почему ? »
Вы неправильно используете свойства и методы объектов. Кроме того, в файлах нет листов с такими названиями, на которые вы ссылаетесь.
Цитата vetold74:
в файле "Приказ" две подсвеченые ячейки с них забираются данные. »
Нужно их заполнить.
Цитата vetold74:
Set poiskcell = Workbooks("БАЗА_ВП") »
Расширение у файла может быть различным, его следует указывать.
Цитата vetold74:
Worksheets("Приказ").Range("B18") »
По факту лист называется "Делить", а не "Приказ". Исправьте или в коде, или в файле.
Цитата vetold74:
Worksheets("13_11"). »
Такого листа тоже нет.

Насколько я могу судить, код должен быть примерно таким, а файлы должны ему соответствовать:
Код: Выделить весь код
Sub KOD()

Dim myPhrase As Range, myCell As Range, vstavkaKod As Range, poiskcell As Range, Obmen As Range

Set myPhrase = Worksheets("Приказ").Range("B18")
Set vstavkaKod = Worksheets("Приказ").Range("K10")

Workbooks.Open "D:\робота\1\робота\БАЗА_ВП.xlsx"
Worksheets("13_11").Activate
Set poiskcell = Workbooks("БАЗА_ВП.xlsx").Worksheets("13_11").Range("C1:C30")

Set myCell = poiskcell.Find(myPhrase)
If Not myCell Is Nothing Then
MsgBox "Адрес найденной ячейки: " & myCell.Address
Set Obmen = myCell.Offset(, 17)
Obmen.Value = vstavkaKod.Value
Workbooks("БАЗА_ВП.xlsx").Save
Else
    MsgBox "Не найдено"
    Workbooks("БАЗА_ВП.xlsx").Close
End If
End Sub

-------
[Форум Word и Excel] - [Как запустить Word, Excel и Outlook в безопасном режиме?] - [Как удалить шаблон Word Normal.dotm?]

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 10-08-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Файлы что прикрепил делал по быстрому сам с оригинала.. Поэтому есть неточности такие как "приказ" (название книги) "делить" (название листа в этой книги) - это один файл.
Лист "13_11" это первый лист в книге "БАЗА-ВП" это я прозевал исправить....
Поменял значения как описано выше. Ошибка та же...
Run - time error ' 91 ' : Object variable or With block variable not set
Перевод - Ошибка времени выполнения '91': переменная объекта или переменная блока не установлена

Последний раз редактировалось vetold74, 10-08-2022 в 19:23.


Отправлено: 19:15, 10-08-2022 | #3


Динохромный


Contributor


Сообщения: 630
Благодарности: 300

Профиль | Отправить PM | Цитировать


Цитата vetold74:
Поменял значения как описано выше. Ошибка та же... »
Это на моем коде, или на вашем? Там различий достаточно много, начиная например с диапазона
Цитата vetold74:
Range("C1:C") »
или например не бывает такой коллекции / объекта:
Цитата vetold74:
ActiveWorkbooks.Open »
Ну и другого там хватает. Мой приложенный код у меня срабатывал, нужно было только привести в порядок названия файлов, листов и диапазонов. Приложите ваши файлы и откорректированный код, который вы запускаете.

-------
[Форум Word и Excel] - [Как запустить Word, Excel и Outlook в безопасном режиме?] - [Как удалить шаблон Word Normal.dotm?]


Отправлено: 19:50, 10-08-2022 | #4


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата a_axe:
Цитата vetold74:
Поменял значения как описано выше. Ошибка та же... »
Это на моем коде, или на вашем? Там различий достаточно много, начиная например с диапазона
Цитата vetold74:
Range("C1:C") »
или например не бывает такой коллекции / объекта:
Цитата vetold74:
ActiveWorkbooks.Open »
Ну и другого там хватает. Мой приложенный код у меня срабатывал, нужно было только привести в порядок названия файлов, листов и диапазонов. Приложите ваши файлы и откорректированный код, который вы запускаете.
Мне нужно фильтровать весь столбик(с1:с). Значений в нем много, до 100000 может доходить.
Суть макроса что я ищу значение ячейки В18 (книга "приказ" лист "делить" в книге "база" лист "13_11". Если значение в базе есть я смещаюсь на 17 ячеек, от активной ячейки (то значение что я нашел) и вставляю значение "К10"( с книги "приказ" лист "делить") в эту ячейку. Сохраняю результат и закрываю книгу.

Последний раз редактировалось vetold74, 10-08-2022 в 21:41.


Отправлено: 21:32, 10-08-2022 | #5


Динохромный


Contributor


Сообщения: 630
Благодарности: 300

Профиль | Отправить PM | Цитировать


Цитата vetold74:
Мне нужно фильтровать весь столбик(с1:с) »
Попробуйте просуммировать диапазон c1:c с помощью функции сумм(c1:c) - эксель не может ее вычислить (и представить этот диапазон тяжело). Тогда пишите "C:C", а лучше -
Код: Выделить весь код
 Set poiskcell = Workbooks("БАЗА_ВП.xlsx").Worksheets("13_11").Range("C1").Resize(Workbooks("БАЗА_ВП.xlsx").Worksheets("13_11").Range("C1").End(xlDown).Row, 1)
Цитата vetold74:
Сохраняю результат и закрываю книгу. »
В коде пока логика другая: или сохраняю результат, или закрываю книгу.

vetold74, на самом деле не очень понятно, зачем вам VBA, поставленные задачи легко решаются стандартными средствами экселя. Вы регистрируете движение неких материалов по точкам, или в чем смысл этого кода?

-------
[Форум Word и Excel] - [Как запустить Word, Excel и Outlook в безопасном режиме?] - [Как удалить шаблон Word Normal.dotm?]


Отправлено: 22:02, 10-08-2022 | #6


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата a_axe:
Цитата vetold74:
Мне нужно фильтровать весь столбик(с1:с) »
Попробуйте просуммировать диапазон c1:c с помощью функции сумм(c1:c) - эксель не может ее вычислить (и представить этот диапазон тяжело). Тогда пишите "C:C", а лучше -
Код: Выделить весь код
 Set poiskcell = Workbooks("БАЗА_ВП.xlsx").Worksheets("13_11").Range("C1").Resize(Workbooks("БАЗА_ВП.xlsx").Worksheets("13_11").Range("C1").End(xlDown).Row, 1)
Цитата vetold74:
Сохраняю результат и закрываю книгу. »
В коде пока логика другая: или сохраняю результат, или закрываю книгу.

vetold74, на самом деле не очень понятно, зачем вам VBA, поставленные задачи легко решаются стандартными средствами экселя. Вы регистрируете движение неких материалов по точкам, или в чем смысл этого кода?
Поиск данных я могу прописать функцией ВПР, а дальше вставка данных с ячейки со смещением активной ячейки.. ..а так есть возможность привязать все на кнопку и запускать макрос по надобности.
В коде сначало стоит сохранение вставки (если я ее нашел), если нет то закрытие книги. Я что то напутал?

Отправлено: 22:09, 10-08-2022 | #7


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. Ошибку нашел.... Это оказался формат (ссылка) обьекта поиска ячейки В18 и К10.
Большое спасибо за помощь.

Отправлено: 09:02, 11-08-2022 | #8



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - [решено] Excel vba не стартует код поиска между книгами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2013 - Добавленная в Excel VBA функция не пересчитывает значения автоматически subuday77 Microsoft Office (Word, Excel, Outlook и т.д.) 5 15-10-2018 10:10
2010 - Excel не раскрывает категории + странное окно поиска. Avatar-Lion Microsoft Office (Word, Excel, Outlook и т.д.) 7 20-08-2015 00:01
.NET - добавление кода в VBA код страницы Excel corbis Программирование и базы данных 0 01-06-2015 02:29
VBA - [решено] VBA в EXCEL не освобождается память navuhodonosor Программирование и базы данных 5 12-08-2013 00:45
Не стартует, пост код D0 nemo_the_capitain@vk Материнские платы и память 5 18-07-2013 21:22




 
Переход