2016-09-29 9 views
2
があります。

既存のデータを移動する2つのセルを挿入するマクロが必要です。簡単だけど、終日終わった。

問題は、列Bにテキストと通貨が含まれていることです。セルに通貨、たとえば$ 4661.52が含まれている場合は、既存の通貨データを正しく移動する2つのセルを挿入する必要があります。

長さは、通貨セルの場所によって異なります。遅くとも と混乱している。このコードをチェックアウト

Public Sub insertcells() 
Const CLIENT As String = "B" 
Dim Lastrow As Long 
Dim i As Long 
    Application.ScreenUpdating = False 
     With ActiveSheet 
     Lastrow = .Cells(.Rows.Count, CLIENT).End(xlUp).Row 
     For i = Lastrow To 1 Step -1 
      If Cells(i, CLIENT).Value2 Like "$*" Then 
       .Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
      End If 
     Next i 
    End With 
Application.ScreenUpdating = True 
End Sub 
+0

コードのインデントやその他の編集で質問を適切に作成してください。これはあなたの質問をより理解しやすくします。 :) –

答えて

1

はこれと多くのバリエーションを試してみました。

Public Sub insertcells() 
Const CLIENT As String = "B" 
Dim Lastrow As Long 
Dim i As Long 
    Application.ScreenUpdating = False 
     With ActiveSheet 
     Lastrow = .Cells(.Rows.Count, CLIENT).End(xlUp).Row 
     For i = Lastrow To 1 Step -1 
      If Cells(i, CLIENT).Value2 Like "$*" Or IsNumeric(Cells(i, CLIENT).Value) Then 
       .Cells(i, CLIENT).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
       .Cells(i, CLIENT).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 
      End If 
     Next i 
    End With 
Application.ScreenUpdating = True 
End Sub 
+0

それはほとんどそこにある!ありがとう。 2つのセルを右に動かすためにちょうどもう1ビット、? –

+0

.Cells(i、CLIENT).Insert Shift:= xlToRight、CopyOrigin:= xlFormatFromLeftOrAboveという行を繰り返すだけで、好きなように動作します。私は答えを更新しました。チェックしてください。 –

関連する問題