Войти

Показать полную графическую версию : Преобразование данных (Excel) - megalomanу респект


Serg2010
26-04-2011, 21:28
Добрый день!
Екселевский файл, 3 столбца. В первом и третьем столбце по одному значению (наименование организации и почтовый индекс соответственно), всё ок.
А вот во втором столбце имеет место быть три значения разделенных Ентером (ну или если проведу замену точкой с запятой). Это улица, город, область.
Дак вот, требуется чтобы первый столбец остался без изменений, второй столбец разделился на три столбца по каждому значению (т.е. второй станет улицей, третий городом, четвертый областью),
ну а бывший 2 столбец стал уже пятым с индексом.

Насколько сложно провести то же самое с файлов в форде?

Спасибо.

Iska
26-04-2011, 23:08
Serg2010, результат обычно напрямую зависит от приложенного образца файла.

Выделить область со вторым столбцом, записать макрос, воспользовшись средством «\Данные\Текст по столбцам»; получив нечто подобное:
Selection.TextToColumns Destination:=Range("<здесь диапазон>"), DataType:=xlDelimited, Other:=True, OtherChar := vbLf

преобразовать его в WSH.
ну а бывший 2 столбец стал уже пятым с индексом. »
Бывший третий, Вы хотели сказать…

megaloman
03-05-2011, 11:04
Вот скрипт VBSfXLS = "P:\Delete\ccc.xls"

Set XL = CreateObject("Excel.Application")
XL.Visible = True
XL.Workbooks.Open fXLS

i = 0
Do While True

Stroka = XL.Range("A1").Offset(i, 0)
If Stroka = "" Then Exit Do
XL.Range("B1").Offset(i, 0).TextToColumns XL.Range("D1").Offset(i, 0),,,,,,,,True,vbLf

i = i + 1
Loop

XL.Columns("B").Delete xlToLeft
XL.Columns("B").Cut
XL.Columns("F").Insert xlToRight

XL.ActiveWorkbook.Save
XL.QuitС макросами в Word не работаю
Использовал сообщение Iska и хелп VBA




© OSzone.net 2001-2012