Программа iNETsHOP - обработка, сравнение, анализ прайс листов поставщиков, создание каталога товаров интернет магазина Форум - Программа iNETsHOP - Работа с программой - Перевести евро в руб


http://inetshop.in.ua/index.php?p=showtopic&toid=325&fid=2&area=1&print_post=1962
10.08.2016 17:50

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
В вашем прайс-листе валюта в цене указана не текстом в самой ячейке, а как формат ячейки (NumberFormat).



Вариантов решения такой проблемы несколько, можно создать сценарий VBS который будет перед импортом открывать указанный прайс и копировать формат ячеек с ценой в другие ячейки, чтобы по ним в последствии можно делать фильтры. Можно то же самое сделать в макросе Excel, который будет выполняться непосредственно перед чтением товаров и заполнять отдельные ячейки текстом с ценой. Можно даже из T-SQL открывать этот де файл Excel и читать формат ячеек.

Пример макроса Excel для получения формата ячейки и записи его в отдельную колонку:

Код

Sub iNETsHOP_import()
Dim rVal As Range
For Each rVal In Range("e1:e" & Cells(Rows.Count, 5).End(xlUp).Row)
rVal.Offset(, 4) = valuta(rVal)
Next rVal

For Each rVal In Range("f1:f" & Cells(Rows.Count, 6).End(xlUp).Row)
rVal.Offset(, 4) = valuta(rVal)
Next rVal

For Each rVal In Range("g1:g" & Cells(Rows.Count, 7).End(xlUp).Row)
rVal.Offset(, 4) = valuta(rVal)
Next rVal

End Sub

Function valuta(cl As Range) As String
Dim s$, a
s$ = cl.NumberFormat
a = Split(s$, " ")
valuta$ = Replace(a(UBound(a)), """", "")
End Function




В результате работы данного макроса мы получим название формата ячейки с ценой, в котом хранится валюта - в отдельных колонках таблицы I, J, K.



Схема импорта прайс-листа прилагается.


Прикрепленные файлы
multyprice2.zip   ( 2 Просмотров | 933 Bytes )