[英]Excel VBA Text To Columns
早安和提前感謝,我正在嘗試運行VBA宏以使我的最終用戶能夠將條形碼掃描到excel然后使用命令按鈕將條形碼拆分為其組件類型,使用文本到列vba宏,然后將其分解到項目,第1頁和最后一頁框。 由於有3種不同長度的條形碼必須在不同的地方分開,作為權宜之計,我在工作簿中創建了3個選項卡,以便他們可以掃描和分解項目。 理想情況下,我希望能夠在1個工作表上完成所有操作並讓編碼識別需要拆分的內容和位置。 下面是我必須為其中一個項目工作的編碼,但它只識別第一組數組,而不是后續的3.可以有人告訴我如何添加額外的數組以獲得不同的條形碼分割,正確的立場
Sub BarcodeSplit()
On Error GoTo myEnd:
' BarcodeSplit Macro
'
' Keyboard Shortcut: Ctrl+b
'
ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select
ActiveCell.Select
ActiveCell.FormulaR1C1 = "Item"
ActiveCell.Offset(1, -1).Range("A1").Select
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("B2"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(10, 2), Array(17, 2), Array(28, 2)), _
FieldInfo:=Array(Array(0, 2), Array(10, 2), Array(17, 2), Array(28, 2)), _
FieldInfo:=Array(Array(0, 2), Array(14, 2), Array(21, 2), Array(32, 2)), _
FieldInfo:=Array(Array(0, 2), Array(13, 2), Array(20, 2), Array(31, 2)), _
TrailingMinusNumbers:=True
myEnd:
End Sub
下面是條形碼的示例,然后是文本到列拆分的外觀
FP10SS200011915113111022001131110240004 FP10ss2000 1191511 31110220011 31110240004
FP10D400000031256232508001662325120000 FP10D40000 0031256 23250800166 2325120000
FP10MDA-SS050000207496320374001463203745000 FP10MDA-SS05 0020749 63203740014 63203745000
FP10PCDSS050000005566801250501068012510006 FP10PCDSS0500 0000556 68012505010 68012510006
再次感謝你們。 馬丁
如果您實施我的評論,您的代碼將看起來像這樣。
Dim SelectedRange as Range
Dim Cell as Range
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Set SelectedRange = Application.Selection
For each Cell in SelectedRange
If len(Cell) = 39 Then 'length of first barcode Then
Cell.TextToColumns Destination:=Range(Cell), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(10, 2), Array(17, 2), Array(28, 2)), _
TrailingMinusNumbers:=True
ElseIf len(Cell) = ?? Then'length second barcode Then
Cell.TextToColumns Destination:=Range(Cell), DataType:=xlFixedWidth, _
FieldInfo:=Array( 'Enter array here
TrailingMinusNumbers:=True
ElseIf len(Cell) = ?? Then'length third barcode Then
Cell.TextToColumns Destination:=Range(Cell), DataType:=xlFixedWidth, _
FieldInfo:=Array( 'Enter array here
TrailingMinusNumbers:=True
End If
Next Cell
myEnd:
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.