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

Вход

Регистрация

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

 

= Мир MS Excel/Просмотр не всей книги, а заданного столбца - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Просмотр не всей книги, а заданного столбца (Макросы Sub)
Просмотр не всей книги, а заданного столбца
Антон Дата: Четверг, 12.09.2013, 12:03 | Сообщение № 1
Группа: Гости
Уважаемые специалисты, помогите чайнику) Нашел макрос на вашем, замечательном, сайте который мне был бы очень полезен, он ищет значение в книге и выглядит так:

[vba]
Код
Sub CustomSearch()
Dim strFindData As String
Dim rgFound As Range
Dim i As Integer
' Ввод строки для поиска
strFindData = InputBox("Введите данные для поиска")
' Просмотр всех рабочих листов книги
For i = 1 To Worksheets.Count
With Worksheets(i).Cells
' Поиск на i-м листе
Set rgFound = .Find(strFindData, LookIn:=xlValues)
If Not rgFound Is Nothing Then
' Ячейка с заданным значением найдена - выделим ее
Sheets(i).Select
rgFound.Select
Exit Sub
End If
End With
Next
' Поиск завершен. Ячейка не найдена
MsgBox ("Поиск не дал результатов")
End Sub
[/vba]

Но он просматривает всю книгу, а мне нужно, что бы просматривал только определенный столбец или несколько заданных столбцов и выделял соответственно значения только в этих столбцах, помогите подредактировать а то я ну "не в зуб ногой", пока, в VBA. Для вас это не составит большого труда, думаю. Заранее спасибо за помощь! Еще можно маленько объяснить, что вы переделали т.к. я учу этот прекрасный инструмент для Excel.
 
Ответить
СообщениеУважаемые специалисты, помогите чайнику) Нашел макрос на вашем, замечательном, сайте который мне был бы очень полезен, он ищет значение в книге и выглядит так:

[vba]
Код
Sub CustomSearch()
Dim strFindData As String
Dim rgFound As Range
Dim i As Integer
' Ввод строки для поиска
strFindData = InputBox("Введите данные для поиска")
' Просмотр всех рабочих листов книги
For i = 1 To Worksheets.Count
With Worksheets(i).Cells
' Поиск на i-м листе
Set rgFound = .Find(strFindData, LookIn:=xlValues)
If Not rgFound Is Nothing Then
' Ячейка с заданным значением найдена - выделим ее
Sheets(i).Select
rgFound.Select
Exit Sub
End If
End With
Next
' Поиск завершен. Ячейка не найдена
MsgBox ("Поиск не дал результатов")
End Sub
[/vba]

Но он просматривает всю книгу, а мне нужно, что бы просматривал только определенный столбец или несколько заданных столбцов и выделял соответственно значения только в этих столбцах, помогите подредактировать а то я ну "не в зуб ногой", пока, в VBA. Для вас это не составит большого труда, думаю. Заранее спасибо за помощь! Еще можно маленько объяснить, что вы переделали т.к. я учу этот прекрасный инструмент для Excel.

Автор - Антон
Дата добавления - 12.09.2013 в 12:03
Serge_007 Дата: Четверг, 12.09.2013, 12:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[vba]
Код
Sub CustomSearch()
     Dim strFindData As String
     Dim rgFound As Range
     'Dim i As Integer - эта переменная больше не нужна
      
         strFindData = InputBox("Введите данные для поиска") ' Ввод искомого значения
         '
         'For i = 1 To Worksheets.Count *** Цикл убираем, потому что ищем в диапазоне, а не на всех листах
             With Selection 'будем искать в выделенном диапазоне
             'With Worksheets(i).Cells   *** Поиск на i-м листе - это тоже убираем
             Set rgFound = .Find(strFindData, LookIn:=xlValues)
                 If Not rgFound Is Nothing Then
                 'Sheets(i).Select - i-того листа теперь нет, поэтому убираем
                 rgFound.Select
                 Exit Sub
                 End If
             End With
     'Next - раз нет цикла, то и Next не нужен
     MsgBox ("Поиск не дал результатов")
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[vba]
Код
Sub CustomSearch()
     Dim strFindData As String
     Dim rgFound As Range
     'Dim i As Integer - эта переменная больше не нужна
      
         strFindData = InputBox("Введите данные для поиска") ' Ввод искомого значения
         '
         'For i = 1 To Worksheets.Count *** Цикл убираем, потому что ищем в диапазоне, а не на всех листах
             With Selection 'будем искать в выделенном диапазоне
             'With Worksheets(i).Cells   *** Поиск на i-м листе - это тоже убираем
             Set rgFound = .Find(strFindData, LookIn:=xlValues)
                 If Not rgFound Is Nothing Then
                 'Sheets(i).Select - i-того листа теперь нет, поэтому убираем
                 rgFound.Select
                 Exit Sub
                 End If
             End With
     'Next - раз нет цикла, то и Next не нужен
     MsgBox ("Поиск не дал результатов")
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 12.09.2013 в 12:37
KuklP Дата: Четверг, 12.09.2013, 12:42 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А не проще ctrl+f нажать? И там выбрать нужные опции. Зачем такой изврат?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеА не проще ctrl+f нажать? И там выбрать нужные опции. Зачем такой изврат?

Автор - KuklP
Дата добавления - 12.09.2013 в 12:42
Антон Дата: Четверг, 12.09.2013, 14:13 | Сообщение № 4
Группа: Гости
Serge_007 спасибо!
Но задача, что бы искала именно в определенных столбцах, а не в выделенном диапозоне. В моем случае столбцы F и Н.
 
Ответить
СообщениеSerge_007 спасибо!
Но задача, что бы искала именно в определенных столбцах, а не в выделенном диапозоне. В моем случае столбцы F и Н.

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

Excel 2016
[vba]
Код
With Selection
[/vba]замените на[vba]
Код
With Union(Columns(6), Columns(8))
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[vba]
Код
With Selection
[/vba]замените на[vba]
Код
With Union(Columns(6), Columns(8))
[/vba]

Автор - Serge_007
Дата добавления - 12.09.2013 в 14:29
Антон Дата: Четверг, 12.09.2013, 14:40 | Сообщение № 6
Группа: Гости
Спасибо, все получилось...
 
Ответить
СообщениеСпасибо, все получилось...

Автор - Антон
Дата добавления - 12.09.2013 в 14:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Просмотр не всей книги, а заданного столбца (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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