Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/указать путь к другой книге - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » указать путь к другой книге (Макросы/Sub)
указать путь к другой книге
emkub Дата: Вторник, 23.06.2015, 13:13 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 171
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
Прошу помощи в доработке макроса:
[vba]
Код
Sub Del_Array_SubStr()
     Dim sSubStr As String    'èñêîìîå ñëîâî èëè ôðàçà
     Dim lCol As Long    'íîìåð ñòîëáöà ñ ïðîñìàòðèâàåìûìè çíà÷åíèÿìè
     Dim lLastRow As Long, li As Long
     Dim avArr, lr As Long
   
     lCol = Val(InputBox("D", "Çàïðîñ ïàðàìåòðà", 4))
     If lCol = 0 Then Exit Sub
     Application.ScreenUpdating = 0
     lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
     'Имя листа с диапазоном значений на удаление
    Sheets ("Лист2")
         avArr = .Range(.Cells(1, 3), .Cells(.Rows.Count, 1).End(xlUp))
     End With
     'óäàëÿåì
     For lr = 1 To UBound(avArr, 1)
         sSubStr = avArr(lr, 1)
         For li = lLastRow To 1 Step -1
             'If CStr(Cells(li, lCol)) = sSubStr Then Rows(li).Delete
             If -(InStr(Cells(li, lCol), sSubStr) > 0) <> lMet Then Rows(li).Delete
         Next li
     Next lr
     Application.ScreenUpdating = 1
End Sub
[/vba]

Как указать путь к "Лист2"?
Нужно чтобы макрос работал не только в этой книге, а в любой открытой.
 
Ответить
СообщениеЗдравствуйте.
Прошу помощи в доработке макроса:
[vba]
Код
Sub Del_Array_SubStr()
     Dim sSubStr As String    'èñêîìîå ñëîâî èëè ôðàçà
     Dim lCol As Long    'íîìåð ñòîëáöà ñ ïðîñìàòðèâàåìûìè çíà÷åíèÿìè
     Dim lLastRow As Long, li As Long
     Dim avArr, lr As Long
   
     lCol = Val(InputBox("D", "Çàïðîñ ïàðàìåòðà", 4))
     If lCol = 0 Then Exit Sub
     Application.ScreenUpdating = 0
     lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
     'Имя листа с диапазоном значений на удаление
    Sheets ("Лист2")
         avArr = .Range(.Cells(1, 3), .Cells(.Rows.Count, 1).End(xlUp))
     End With
     'óäàëÿåì
     For lr = 1 To UBound(avArr, 1)
         sSubStr = avArr(lr, 1)
         For li = lLastRow To 1 Step -1
             'If CStr(Cells(li, lCol)) = sSubStr Then Rows(li).Delete
             If -(InStr(Cells(li, lCol), sSubStr) > 0) <> lMet Then Rows(li).Delete
         Next li
     Next lr
     Application.ScreenUpdating = 1
End Sub
[/vba]

Как указать путь к "Лист2"?
Нужно чтобы макрос работал не только в этой книге, а в любой открытой.

Автор - emkub
Дата добавления - 23.06.2015 в 13:13
Serge_007 Дата: Вторник, 23.06.2015, 13:31 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Для этого необходимо макрос поместить в личной книге макросов


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеДля этого необходимо макрос поместить в личной книге макросов

Автор - Serge_007
Дата добавления - 23.06.2015 в 13:31
emkub Дата: Вторник, 23.06.2015, 13:35 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 171
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Но тогда он будет обращаться к "лист 2" текущей книги. А нужно к одной определённой. Пусть её имя КНИГА_1.


Сообщение отредактировал emkub - Вторник, 23.06.2015, 13:37
 
Ответить
СообщениеНо тогда он будет обращаться к "лист 2" текущей книги. А нужно к одной определённой. Пусть её имя КНИГА_1.

Автор - emkub
Дата добавления - 23.06.2015 в 13:35
nilem Дата: Вторник, 23.06.2015, 13:52 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Можно, например, добавить в самом начале
[vba]
Код
Workbooks("Одна_Определенная_Книга.xlsx").Activate
[/vba]
и, видимо, забыли With вот здесь
[vba]
Код
With Sheets("Лист2")
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеМожно, например, добавить в самом начале
[vba]
Код
Workbooks("Одна_Определенная_Книга.xlsx").Activate
[/vba]
и, видимо, забыли With вот здесь
[vba]
Код
With Sheets("Лист2")
[/vba]

Автор - nilem
Дата добавления - 23.06.2015 в 13:52
Serge_007 Дата: Вторник, 23.06.2015, 14:05 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
тогда он будет обращаться к "лист 2" текущей книги. А нужно к одной определённой. Пусть её имя КНИГА_1
Вариант (макрос вносит значение "100500" в указанную ячейку (А1), указанного листа (Лист2), определенной книги (Книга_1.xls)): [vba]
Код
Sub emkub()
Dim WB As Workbook
     For Each WB In Workbooks
         If WB.Name = "Книга_1.xls" Then WB.Sheets("Лист2").[a1] = 100500
     Next WB
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
тогда он будет обращаться к "лист 2" текущей книги. А нужно к одной определённой. Пусть её имя КНИГА_1
Вариант (макрос вносит значение "100500" в указанную ячейку (А1), указанного листа (Лист2), определенной книги (Книга_1.xls)): [vba]
Код
Sub emkub()
Dim WB As Workbook
     For Each WB In Workbooks
         If WB.Name = "Книга_1.xls" Then WB.Sheets("Лист2").[a1] = 100500
     Next WB
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 23.06.2015 в 14:05
KSV Дата: Вторник, 23.06.2015, 14:40 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
наверное, ТС нужно было вот так:
[vba]
Код
    With Workbooks("Определенная книга.xls").Worksheets("Лист2")
         avArr = .Range(.Cells(1, 3), .Cells(.Rows.Count, 1).End(xlUp))
     End With
[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениенаверное, ТС нужно было вот так:
[vba]
Код
    With Workbooks("Определенная книга.xls").Worksheets("Лист2")
         avArr = .Range(.Cells(1, 3), .Cells(.Rows.Count, 1).End(xlUp))
     End With
[/vba]

Автор - KSV
Дата добавления - 23.06.2015 в 14:40
emkub Дата: Вторник, 23.06.2015, 14:40 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 171
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Наверное стоит уточнить.
Есть постоянно открытая "Книга_1". В ней список телефонов, которые нужно удалять из других книг + соответствующий макрос (он указан в первом посте).
Я открываю "книгу 2", ИЗ которой нужно удалить номера, которые есть в "Книге 1" на "Листе 2"
Макрос запускается на Активном листе (из него нужно удалить лишнее) "книги 2", должен брать данные из "книги 1" "листа 2" для сравнения.
Сейчас он полностью рабочий, но только в своей книге.
 
Ответить
СообщениеНаверное стоит уточнить.
Есть постоянно открытая "Книга_1". В ней список телефонов, которые нужно удалять из других книг + соответствующий макрос (он указан в первом посте).
Я открываю "книгу 2", ИЗ которой нужно удалить номера, которые есть в "Книге 1" на "Листе 2"
Макрос запускается на Активном листе (из него нужно удалить лишнее) "книги 2", должен брать данные из "книги 1" "листа 2" для сравнения.
Сейчас он полностью рабочий, но только в своей книге.

Автор - emkub
Дата добавления - 23.06.2015 в 14:40
KSV Дата: Вторник, 23.06.2015, 14:44 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
я угадал :)
emkub, посмотрите мое предыдущее сообщение.


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениея угадал :)
emkub, посмотрите мое предыдущее сообщение.

Автор - KSV
Дата добавления - 23.06.2015 в 14:44
emkub Дата: Вторник, 23.06.2015, 14:44 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 171
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
KSV, похоже то, что нужно! Сейчас буду тестировать. ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ!
 
Ответить
СообщениеKSV, похоже то, что нужно! Сейчас буду тестировать. ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ!

Автор - emkub
Дата добавления - 23.06.2015 в 14:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » указать путь к другой книге (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!