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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск и замена объединенных данных - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск и замена объединенных данных (Макросы/Sub)
Поиск и замена объединенных данных
Сергей13 Дата: Среда, 25.12.2019, 19:41 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 321
Репутация: -3 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
Ребята, помогите доработать конструкцию которая на основании объединенных данных на форме ищет идентичные объединенные данные в колонках умной таблицы и при нахождении изменяет эти данные на иные.
Конструкция видится такая:
Переменные где искать, что искать и искать.
[vba]
Код
Dim TblRan As Range 'Переменная где искать
Dim FrmRan As Range 'Переменная что искать
Dim TblFrmRan As Range 'Переменная поиска
Set ShSales = ThisWorkbook.Worksheets("log_book") 'Лист log_book
Set SalesListObj = ShSales.ListObjects("tabl_logbook") 'Таблица tabl_logbook листа log_book
[/vba]
В переменные вписаны объединенные наименования
[vba]
Код
TblRan = SalesListObj.Columns(5) & SalesListObj.Columns(7) & SalesListObj.Columns(8) & SalesListObj.Columns(10) 'Объединенное наименование, где и что искать
FrmRan = FormBD.Txb1.Value & FormBD.Tx2.Value & FormBD.Tx3.Value & FormBD.Tx4.Value 'Объединенное наименование, на основании чего искать
[/vba]далее на основании переменных применен метод поиска
[vba]
Код
Set TblFrmRan = TblRan.Find(FrmRan, LookIn:=xlFormulas, LookAt:=xlWhole) 'Поиск объединенных наименований
[/vba]
и если найдены наименования в таблице идентичные данным на форме, то последовательно заменить все данные в колонках по всем найденным строкам иными данными с формы vba.
[vba]
Код
If Not TblFrmRan Is Nothing Then 'Если найдено Наименование
    SalesListObj.Columns(7) = FormBD.Txb2.Value 'Изменить данные
    SalesListObj.Columns(8) = FormBD.Txb3.Value 'Изменить данные
    SalesListObj.Columns(10) = FormBD.ComboBox8.Value 'Изменить данные
End If
[/vba]
Конструкция не работает.


Сообщение отредактировал Сергей13 - Среда, 25.12.2019, 20:31
 
Ответить
СообщениеЗдравствуйте!
Ребята, помогите доработать конструкцию которая на основании объединенных данных на форме ищет идентичные объединенные данные в колонках умной таблицы и при нахождении изменяет эти данные на иные.
Конструкция видится такая:
Переменные где искать, что искать и искать.
[vba]
Код
Dim TblRan As Range 'Переменная где искать
Dim FrmRan As Range 'Переменная что искать
Dim TblFrmRan As Range 'Переменная поиска
Set ShSales = ThisWorkbook.Worksheets("log_book") 'Лист log_book
Set SalesListObj = ShSales.ListObjects("tabl_logbook") 'Таблица tabl_logbook листа log_book
[/vba]
В переменные вписаны объединенные наименования
[vba]
Код
TblRan = SalesListObj.Columns(5) & SalesListObj.Columns(7) & SalesListObj.Columns(8) & SalesListObj.Columns(10) 'Объединенное наименование, где и что искать
FrmRan = FormBD.Txb1.Value & FormBD.Tx2.Value & FormBD.Tx3.Value & FormBD.Tx4.Value 'Объединенное наименование, на основании чего искать
[/vba]далее на основании переменных применен метод поиска
[vba]
Код
Set TblFrmRan = TblRan.Find(FrmRan, LookIn:=xlFormulas, LookAt:=xlWhole) 'Поиск объединенных наименований
[/vba]
и если найдены наименования в таблице идентичные данным на форме, то последовательно заменить все данные в колонках по всем найденным строкам иными данными с формы vba.
[vba]
Код
If Not TblFrmRan Is Nothing Then 'Если найдено Наименование
    SalesListObj.Columns(7) = FormBD.Txb2.Value 'Изменить данные
    SalesListObj.Columns(8) = FormBD.Txb3.Value 'Изменить данные
    SalesListObj.Columns(10) = FormBD.ComboBox8.Value 'Изменить данные
End If
[/vba]
Конструкция не работает.

Автор - Сергей13
Дата добавления - 25.12.2019 в 19:41
Michael_S Дата: Четверг, 26.12.2019, 02:31 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1911
Репутация: 356 ±
Замечаний: 0% ±

Excel2016
Сергей13, без файла все это - пустые слова.


ЯД: 41001136675053
WM: R389613894253
 
Ответить
СообщениеСергей13, без файла все это - пустые слова.

Автор - Michael_S
Дата добавления - 26.12.2019 в 02:31
Сергей13 Дата: Четверг, 26.12.2019, 19:57 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 321
Репутация: -3 ±
Замечаний: 0% ±

Excel 2016
Michael_S, Это попытка наброском в виде кода раскрыть тему.

Данный тестовый файл показывает выполнение действия на одной найденной строке, код работает по локальному принципу, нашел – заменил, а необходимо проверить все строки и в случае нахождения произвести необходимую замену. Тут походу нужен цикл, с циклом путаюсь…
К сообщению приложен файл: 2019.xlsm(27.3 Kb)


Сообщение отредактировал Сергей13 - Четверг, 26.12.2019, 21:05
 
Ответить
СообщениеMichael_S, Это попытка наброском в виде кода раскрыть тему.

Данный тестовый файл показывает выполнение действия на одной найденной строке, код работает по локальному принципу, нашел – заменил, а необходимо проверить все строки и в случае нахождения произвести необходимую замену. Тут походу нужен цикл, с циклом путаюсь…

Автор - Сергей13
Дата добавления - 26.12.2019 в 19:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск и замена объединенных данных (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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