Страницы: 1
RSS
Раскидать строку по ячейкам
 
Уважаемые, подскажите как средствами Excel или кодом макроса раскидать содержимое строки, в которой данные идут через запятую, по ячейкам?  
 
В примере (это экспорт в excel из другой программы) есть две строки - первая это названия полей, а вторая - данные по этим полям.  
 
То есть нужно следущее - строки преобразовать в таблицу, в которой названия колонок будут соответствовать названия из первой строки, а заполняться она будет данными из остальных строк.
 
Со второй строкой вообще проблемы нет - Данные - Текст по столбцам
 
Да и с первой также
 
Вот результат работы макроса.  
Поместите снова в ячейки А1 и А2 свои данные и нажмите кнопочку.
 
Отлично. Спасибо за оба примера.  
 
Про незнание "текст по столбцам" - стыдно, не знал, а ведь на поверхности лежит =((  
 
Про макрос - он будет работать в любом случае - если поменяется кол-во данных между запятыми или кол. строк с данными?    
 
Так как кол-во названий в первой строке и кол-во данных под них в отсальных строках всегда одинакого, то можно как-то зациклить один кусок кода?
 
Макрос записан при помощи макрорекордера на две строки. Количество запятых без разницы. Лиш бы совпало их количество в первой и второй строках, а то будет несоответствие. Если количество строк исходных разное - нужен макрос, пробегающий по этим строкам и выполняющий то, что записано макрорекордером.
 
{quote}{login=Stanislav}{date=17.05.2008 05:10}{thema=}{post}Отлично. Спасибо за оба примера.  
 
Про незнание "текст по столбцам" - стыдно, не знал, а ведь на поверхности лежит =((  
 
Про макрос - он будет работать в любом случае - если поменяется кол-во данных между запятыми или кол. строк с данными?    
 
Так как кол-во названий в первой строке и кол-во данных под них в отсальных строках всегда одинакого, то можно как-то зациклить один кусок кода?{/post}{/quote}  
Sub Макрос()  
Application.DisplayAlerts = False  
Range([A1], [A65536].End(xlUp)).TextToColumns _
Destination:=[A1], DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _  
ConsecutiveDelimiter:=False, Tab:=True, _  
Semicolon:=False, Comma:=True, Space:=False, _  
Other:=False, TrailingMinusNumbers:=True  
Application.DisplayAlerts = False  
End Sub
 
Не принципиальная поправка.  
В конце должно быть:  
Application.DisplayAlerts = True  
Хотя Excel автоматически это делает и сам после выполнения кода. Можно вообще исключить Application.DisplayAlerts из приведеного кода.
Страницы: 1
Читают тему
Наверх