Доброго времени суток всем! Суть проблемы: Написан модуль, анализирующий поставки товара, стоимости, сроки годности и т.п., интегрирован в личную книгу макросов на значительном количестве ПК. В теле модуля есть сравнение содержимого ячейки, содержащей название компании-поставщика, и , если этот поставщик входит в список забирающих нереализованый товар (так называемый ВОЗВРАТНЫЙ ПОСТАВЩИК), то алгоритм обработки модуля идет по другой ветке. В коде реализовано коряво, через : [vba]
Код
'анализируем производителя postashik1 = Range(postavshik & Nstroka).Value If postashik1 Like "*ефрем*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*лакт*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*ЭХО*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*SOMBOL*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*ферэл*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp End If
[/vba] То есть, тупо сравниваем содержимое ячейки с явно обозначенным словом. Проблема в том, что список поставщиков меняется довольно регулярно, и дополнять код на каждой машине вообще не вариант. Хотелось бы использовать для этой цели некоторый аналог файла ресурсов или что-нибудь в этом роде, не находящееся в книге эксель, к примеру текстовый файл, со списком, на соответствие которому циклом проводится проверка, который можно кинуть в корень диска Ц или другое место :). Буду благодарен за любую помощь. Весь модуль в аттаче.
Доброго времени суток всем! Суть проблемы: Написан модуль, анализирующий поставки товара, стоимости, сроки годности и т.п., интегрирован в личную книгу макросов на значительном количестве ПК. В теле модуля есть сравнение содержимого ячейки, содержащей название компании-поставщика, и , если этот поставщик входит в список забирающих нереализованый товар (так называемый ВОЗВРАТНЫЙ ПОСТАВЩИК), то алгоритм обработки модуля идет по другой ветке. В коде реализовано коряво, через : [vba]
Код
'анализируем производителя postashik1 = Range(postavshik & Nstroka).Value If postashik1 Like "*ефрем*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*лакт*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*ЭХО*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*SOMBOL*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp ElseIf postashik1 Like "*ферэл*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" GoTo my_jamp End If
[/vba] То есть, тупо сравниваем содержимое ячейки с явно обозначенным словом. Проблема в том, что список поставщиков меняется довольно регулярно, и дополнять код на каждой машине вообще не вариант. Хотелось бы использовать для этой цели некоторый аналог файла ресурсов или что-нибудь в этом роде, не находящееся в книге эксель, к примеру текстовый файл, со списком, на соответствие которому циклом проводится проверка, который можно кинуть в корень диска Ц или другое место :). Буду благодарен за любую помощь. Весь модуль в аттаче.rummy
Хотелось бы использовать для этой цели некоторый аналог файла ресурсов ... к примеру текстовый файл
Так в чем проблема? С текстовым файлом можно работать как встроенными средствами VBA, так через Scripting.FileSystemObject. Примеров и того, и другого на форуме море.
[vba]
Код
Sub Мяу() Dim txt$, spl, i& txt = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\Новый текстовый документ.txt", 1).ReadAll spl = Split(txt, vbNewLine) For i = LBound(spl) To UBound(spl) If postashik1 Like "*" & spl(i) & "*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" End If Next End Sub
Хотелось бы использовать для этой цели некоторый аналог файла ресурсов ... к примеру текстовый файл
Так в чем проблема? С текстовым файлом можно работать как встроенными средствами VBA, так через Scripting.FileSystemObject. Примеров и того, и другого на форуме море.
[vba]
Код
Sub Мяу() Dim txt$, spl, i& txt = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\Новый текстовый документ.txt", 1).ReadAll spl = Split(txt, vbNewLine) For i = LBound(spl) To UBound(spl) If postashik1 Like "*" & spl(i) & "*" Then 'если есть совпадение со списком возвратных поставщиков Range(yacheyka & Nstroka).Value = "Возвратный продукт!" End If Next End Sub