在B栏中有5个字符的项目代码+项目描述。 我设法创建一个宏,将5个字符项代码从B列复制/粘贴到D列,将项目描述复制/粘贴到E列。
示例:
Column B Column C Column D Column E
XX787 DO BOLOGNESE 2X2.28KG FR <other> XX787 DO BOLOGNESE 2X2.28KG FR
我面临以下问题:
正如您所看到的,最后2个是具有不同格式的项目代码的示例,即使它们只有少量,当然也必须考虑它们。
因此,根据我目前的编码,会出现以下问题:
我认为宏应该执行以下操作才能使其正常工作:
对于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 :(得分: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