Страницы: 1
RSS
разбиение ячейки на столбцы
 
добрый день.
со сканера штрих-кода в ячейку попадают следующие данные  123;234;435;3453 (цифры все случайные)
как сделать чтобы где-то(на этом же листе или на следующем) эти цифры разбивались по столбцам, каждая в свой?
данные символы воспринимаются как текст и не дают работать с формулами.
явно делаю что-то не так.
подскажите пожалуйста
 
Выделить столбец с данными - вкладка Данные-Текст по столбцам.
На втором шаге "С разделителями"- точка с запятой
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
спасибо.
а как сделать чтобы по-умолчанию так воспринимался этот столбец?
т.е. новые данные введенные сразу обрабатывались таким способом?
сейчас входит нужно делать эту манипулацию после каждого добавления данных в столбец
 
Записать рекордером. Выполнять по необходимости.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Разбивать макросом по событию изменения ячейки.
 
т.е. других вариантов нет?
только каждый раз проделывать эту процедуру? нельзя столбец(столбцы или листы может) заклеймить только под такие значения, чтобы это делалось само без доп. нажатий?
еще одна проблема. при повторении данной функции - "текст по столбцам", данные из ячеек, которые уже были разнесены, пропадают(кроме первой в строке).
причем интересно, если функцию повторно проводить без добавления в столбец новых данных, ничего не пропадает(т.е. ничего не происходит), если добавить в столбец ячейку с данными через точку с запятой, то эта ячейка разносится корректно, а разнесенные ранее удаляются
Изменено: moroznik - 07.04.2015 16:26:54
 
прочитал про макрос. от проблемы с удалением уже разнесенных он не спасет или ошибаюсь?
 
Как напишите - так и спасёт.
Можно сделать как угодно - только пока нет ясности как именно Вам угодно.
 
делал макрос всего один раз, потому видно не очень понимаю всех возможностей

угодно очень просто. сейчас так заполняются столбцы.(нижняя таблица)
через ж или ; в  зависимости от выбранной раскладки  
а нужно сделать такой файл, что после его открытия, без каких-либо доп.действий, данные заносились как в таблице наверху(раздельно по ячейкам)
не корректно выглядит сообщение здесь, добавляю файл

32325549904991915991159327230
32325549904991915991159327230
32325549904991915991159327230
32325549904991915991159327230
3232554990ж4991915ж9911593ж27230
3232554990ж4991915ж9911593ж27230
3232554990;4991915;9911593;27230
3232554990;4991915;9911593;27230
Изменено: moroznik - 07.04.2015 16:54:27
 
макрорекодер
Лень двигатель прогресса, доказано!!!
 
Не, я думаю нужно что-то другое.
У меня в одном рабочем файле сделано так - сканирую в ячейку G1, макрос анализирует изменение этой ячейки, если данные ОК, то добавляется вторая строка (в первой шапка таблицы с образцом формата таблицы и G1), в неё извлекаются нужные части отсканированного.
Так свежие данные всегда навиду и под контролем, всё ранее насканированное сдвигается вниз.
Думаю можно и тут делать что-то подобное - но это я так думаю, но это не моя задача...
А как должна разбиться строка - это было понятно и из первого поста, незачем было это показывать в файле, дело в другом.
Изменено: Hugo - 08.04.2015 08:50:35
 
Выделяем диапазон, запускаем макрос. Справа от ШК получаем результат.
Код
Sub СтрокаПоСтолбцам()
Dim cc As Range
Application.DisplayAlerts = False
If TypeName(Selection) <> "Range" Then Exit Sub
For Each cc In Selection
    cc.TextToColumns Destination:=cc.Offset(0, 1), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="ж", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
        TrailingMinusNumbers:=True
    If Len(cc.Value) = Len(cc.Offset(0, 1).Value) Then
        cc.TextToColumns Destination:=cc.Offset(0, 1), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
            :=";", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
            TrailingMinusNumbers:=True
    End If
Next cc
Application.DisplayAlerts = True
End Sub
Неизлечимых болезней нет, есть неизлечимые люди.
 
В принципе решение ведь уже прозвучало в первом же ответе - например насканировали ящик товара в чистый лист, сделали вручную "текст по столбцам", сохранили или скопипастили куда нужно результат, сканируем следующий ящик в следующий лист/файл.
Ну ещё в свете вдруг появившихся "ж" можно сперва заменить их все на ";", чтоб разбилось по столбцам всё.
Изменено: Hugo - 08.04.2015 10:15:06
 
Цитата
Сергей написал: макрорекодер
супер спасибо. сам не мог побороть замену ячеек при повторной обработке макросом.

еще не подскажите как сделать так... подскажут в другой теме[МОДЕРАТОР]
Страницы: 1
Наверх