2016-08-30 3 views
1

В столбце B есть код символа 5 символов + описание элемента. мне удалось сделать макрос, который копировать/вставляет пункт 5 символов из кодов столбца B в колонке D и описания элемента в столбце Е.Вставка разделительных данных из столбца B в столбцы D & E

Пример:

  Column B    Column C Column D  Column E 
XX787 DO BOLOGNESE 2X2.28KG FR <other> XX787 DO BOLOGNESE 2X2.28KG FR 

Я сталкиваются следующие вопросы:

  • Около 1% из кодов элементов не являются 5 символов, но 8 символов, например
  • Этот процент, который существует из 8 символов существует чисел и начинается с 0

Как вы можете видеть, последние 2 являются примерами кодов товаров, которые имеют другой формат, и хотя их только небольшое количество, их нужно учитывать, конечно.

Так что с моим текущим кодированием, возникают следующие вопросы:

Hier een foto

Я думаю, что макрос должен сделать следующее, чтобы сделать эту работу:

Для элементов кодов в колонке D: Копировать/вставьте все символы ПЕРЕД первым пространством из столбца B Для описания позиций в столбце E: Скопируйте/вставьте все символы ПОСЛЕ первого места

Код, который я являюсь текущим Для этого необходимо:

Sub Seperate_Item_Code_And_Description_Code() 
    'Copy/paste the item codes and descriptions from column B to column D and E seperately 

    Range("B12").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.TextToColumns Destination:=Range("D12"), DataType:=xlFixedWidth, _ 
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
    FieldInfo:=Array(Array(0, 1), Array(6, 1)), TrailingMinusNumbers:= _ 
    True 
End Sub 
+0

Текст в столбцы не подходит для этих условий. Я думаю, вам может быть лучше сбрасывать до первого места, а затем из первого места. Первое пространство может быть найдено с помощью '= FIND (" ", A1)' или попробуйте [INSTR] (https://www.techonthenet.com/excel/formulas/instr.php). – pnuts

ответ

0

Попробуйте использовать этот кодированный и условный текст для столбцов.

Option Explicit 

Sub wqewtrqw() 
    Dim s As Long, a As Long, aVALs As Variant 

    With Worksheets("Sheet5") 
     aVALs = .Range(.Cells(12, "B"), .Cells(.Rows.Count, "B").End(xlUp)).Value2 
     ReDim Preserve aVALs(LBound(aVALs, 1) To UBound(aVALs, 1), 1 To 2) 
     For a = LBound(aVALs, 1) To UBound(aVALs, 1) 
      s = InStr(1, aVALs(a, 1), Chr(32)) 
      aVALs(a, 2) = Mid(aVALs(a, 1), s + 1) 
      aVALs(a, 1) = Left(aVALs(a, 1), s - 1) 
     Next a 
     .Cells(12, "D").Resize(UBound(aVALs, 1), UBound(aVALs, 2)) = aVALs 
    End With 
End Sub 
+0

Я получаю следующее сообщение об ошибке: подписка выходит за пределы диапазона СПАСИБО МНОГО для быстрой помощи. Btw –

+0

Вы изменили имя обрабатываемого листа? – Jeeped

+0

Да, я это сделал. Зачем? :) –

Смежные вопросы