|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - сопоставление слов с транслитом и заменой используя vba |
|
2010 - сопоставление слов с транслитом и заменой используя vba
|
Ветеран Сообщения: 580 |
Профиль | Отправить PM | Цитировать
Хочу уже закрыть тему с чисткой данных используя vba на продуктах)
последний этап следующий есть тхт файлы вот структура (C:/partdata.txt) и есть файл с транслитом, будет поплняться(вручную) C:/23.txt его содержимое old new MAKFA МАКФА makar макароны макар. макароны MAKFA МАКФА Макар макароны макар. макароны мак макароны Мак макароны макф макфа маkфа макфа kрупа крупа колонка old - это слово, которое необходимо заменить, а в колонке new указано, какое слово из old столбца должно быть заменено в partdata.txt в столбце good_names ID ITEM_SUM BARCODE QUANTITY PRICE NDS10 NDS18 GOODS_NAME ID_C_REGCODES_CASH_VOUCHER DISCOUNTNAME DISCOUNTSUM 3972 43.99 1 43.99 4 0 2049750 MAKFA Макар.УЛИТКИ 450г 3971 0 GOODS_NAME колонка MAKFA Макар.УЛИТКИ так слово Макар. есть в old column файла 23.txt и оно должно быть заменено на макароны в partdata.txt из new column. как создать скрипт vba в отдельном файле 1.xlsx (скрипт должен быть запущен из xlsx, поскольку txt может содержать 10M строк), который может сопоставлять слова из столбца good_names файла partdata.txt со словами в транслит-файле 23.тхт, и если он нашел слово в столбце good_names файла partdata.txt, и оно есть в старом столбце файла транслита 23.txt, затем заменить это слово на новое из new column файла 23 txt в столбце good_names файла partdata.txt, как в моем пример . и на выходе ID ITEM_SUM BARCODE QUANTITY PRICE NDS10 NDS18 GOODS_NAME ID_C_REGCODES_CASH_VOUCHER DISCOUNTNAME DISCOUNTSUM 3972 43.99 1 43.99 4 0 2049750 МАКФА макароны УЛИТКИ 450г 3971 0 |
|
Отправлено: 14:05, 18-10-2018 |
Ветеран Сообщения: 580
|
Профиль | Отправить PM | Цитировать я попытался для начала решить проблему таким путем
в первом листе строки partdata во втором 23.txt https://dropmefiles.com/Fg2Cz Sub test3() Dim rowCount As Integer rowCount = Sheet1.Range("A" & rows.Count).End(xlUp).Row rowCount2 = Sheet2.Range("A" & rows.Count).End(xlUp).Row MsgBox rowCount MsgBox rowCount2 For i = 2 To rowCount For j = 2 To rowCount2 If Sheet1.Range("H" & i).Value = Sheet2.Range("A" & j).Value Then Sheet1.Range("H" & i).Value = Sheet2.Range("B" & j) End If Next j Next i End Sub rowCount = Sheet1.Range("A" & Rows.Count).End(xlUp).Row что это значит? почему не сработало |
Отправлено: 12:59, 19-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Динохромный Сообщения: 690
|
Профиль | Отправить PM | Цитировать Цитата r-studio:
Обратиться к конкретному листу активной рабочей книги можно через ActiveWorkbook.Sheets ("Название_листа"), или присвоить значение Sheet1: Set Sheet1=ActiveWorkbook.Sheets ("Название_листа") В конце не забудьте указать Set Sheet1=Nothing Кроме того, rowCount может принимать значения чуть больше 32000, в вашем случае лучше использовать тип long. |
|
------- Отправлено: 20:12, 20-10-2018 | #3 |
Ветеран Сообщения: 580
|
Профиль | Отправить PM | Цитировать a_axe, пожалуйста, можете показать как код должен выглядеть
|
Отправлено: 11:11, 21-10-2018 | #4 |
Динохромный Сообщения: 690
|
Профиль | Отправить PM | Цитировать r-studio, приложите файл excel с небольшим количеством данных. Если вас устроит результат в копии столбца А (например - в С), то vba тут вероятно не нужен, достаточно стандартных функций поискпоз + индекс.
|
|
------- Отправлено: 15:54, 21-10-2018 | #5 |
Ветеран Сообщения: 580
|
Профиль | Отправить PM | Цитировать a_axe, прилржил файлик скорее всего VBA нужен, если в txt файле( (C:/partdata.txt)), из которого я в er.xlsx скопировал данные будет 10M с экселем будут проблемы
|
Последний раз редактировалось r-studio, 22-03-2019 в 16:34. Отправлено: 16:12, 21-10-2018 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2010 - Извлечение ключевых сущностей используя VBA | r-studio | Microsoft Office (Word, Excel, Outlook и т.д.) | 5 | 19-09-2018 14:53 | |
2012 R2 - Запуск и работа Excel VBA используя службу Windows и Power Shell | Mor940k | Windows Server 2012/2012 R2 | 0 | 12-04-2016 12:26 | |
2008 R2 - Сопоставление типов файлов и протоколов | Almest | Windows Server 2008/2008 R2 | 8 | 15-12-2014 12:03 | |
CMD/BAT - Сопоставление серверов и IP | EDIsaev | Скриптовые языки администрирования Windows | 7 | 23-07-2013 17:00 | |
сопоставление | alex11 | Хочу все знать | 4 | 21-03-2005 20:04 |
|