我的代码仅适用于所选单元格。我希望它适用于A列中的每个单元格。
到目前为止我的代码:
base
如果添加了行,我也试图让它继续工作。
答案 0 :(得分:0)
下面的代码将循环遍历A列中的所有行,从第3行开始直到带有数据的最后一行。
我使用Select Case .Range("B" & LRow).Value
而不是多个ElseIf
。
我假设您的上一个ElseIf IsEmpty(Range("D3").Value) = True Then
是类型错误,您的意思是ElseIf IsEmpty(Range("B3").Value) = True Then
。
<强>代码强>
Option Explicit
Sub Splitter()
Dim i As Integer
Dim Text As String
Dim Item As Variant
Dim LastRow As Long
Dim LRow As Long
' modify "sheet1" to your sheet's name
With Sheets("Sheet1")
' find last row in Column A
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For LRow = 3 To LastRow
Item = Split(.Range("A" & LRow), "-")
For i = 0 To UBound(Item)
.Cells(LRow, i + 2).Value = Item(i)
Next i
Select Case .Range("B" & LRow).Value
Case "CHOP"
.Range("D" & LRow).Value = "chopsticks"
Case "NAPK"
.Range("D" & LRow).Value = "napkins"
Case "RICE"
.Range("D" & LRow).Value = "white rice"
Case "SOYS"
.Range("D" & LRow).Value = "soy sauce"
Case "CHOP"
.Range("D" & LRow).Value = "chopsticks"
Case Else
.Range("D3").Value = "other"
End Select
Next LRow
End With
End Sub