기둥

2016-12-10 1 views
1

내 코드에있는 모든 세포에 기능을 적용하면은 선택한 셀에 대해 작동합니다. 나는 또한 행이 추가되면 작업을 계속 얻기 위해 노력하고기둥

Sub Splitter() 

Dim i As Integer 
Dim Text As String 
Dim Item As Variant 

Text = ActiveCell.Select 
Item = Split(ActiveCell, "-") 

For i = 0 To UBound(Item) 
    Cells(3, i + 2).Value = Item(i) 
Next i 

If Range("B3").Value = "CHOP" Then 
    Range("D3").Value = "chopsticks" 
ElseIf Range("B3").Value = "NAPK" Then 
    Range("D3").Value = "napkins" 
ElseIf Range("B3").Value = "RICE" Then 
    Range("D3").Value = "white rice" 
ElseIf Range("B3").Value = "SOYS" Then 
    Range("D3").Value = "soy sauce" 
ElseIf IsEmpty(Range("D3").Value) = True Then 
    Range("D3").Value = "other" 
End If 

End Sub 

: 나는

여기까지 내 코드있다가 A 열에있는 모든 셀에 대해 작업 할.

+0

? "ABCD-xxx"와 같은가요? 아니면 때때로 "ABCD-xxx-xxx-xxx"가 있습니까? (하이픈이 두 개 이상있는 경우 열 A에있는 원래 셀의 세 번째 "부분"에있는 "기타"또는 D 열에 넣을 내용에 영향을 미칩니다. – YowE3K

+0

코드에서 '선택 Case Range ("B3"). Value' 다음에'Case "CHOP"'등등. –

+0

내 데이터가 ABCD-xxxx 만 있습니다. 그래서 올바른 함수를 수행하는 방법을 알아 냈지만 선택된 셀에만 적용 할 수 있으며 전체 행을 적용하는 방법을 모르겠습니다. –

답변

0

데이터 마지막 ​​행까지 행 3 열부터 A의 모든 행을 통해 뜻 루프 아래 코드.

내가 대신 여러 ElseIfSelect Case .Range("B" & LRow).Value을 사용하고 있습니다.

나는 마지막 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 
당신이 열 A에 있나요 어떤 종류의 데이터
+0

이 거의 완벽하다! 열 B는 CHOP는 NAPK는 SOYS는 쌀 다음은 "기타"할 필요가 아무것도하지만,이 경우 작동하지 않는 유일한 부분은 열 D에있다. 나는 원래 그 무언가가 아니었다면 그것이 비어 있기 때문에 원래는 무의미했다. –

+0

@ TravisWilliamCarter 편집 된 코드를 시도해보고 이것이 의미하는 바가 무엇인지 알려주세요 –

+0

$ !! 너는 거대한 도움이된다! –