2017-05-26 4 views
-1

これは私が既に別の教科ビデオから操作したコードに従います。私はそれが私がいくつかの助けを得ることができることを期待して正しく動作するように見えることができません。私が達成しようとしていることは、Excelファイル内の単一の列をレビューし、要件が満たされている行をカットし、別のシート上の最初の開いている行に貼り付けることです。カット/ペースト複数の異なる条件に基づいて、1つのシートから別のシートへの行

Sub V_LTC() 

Dim i As Long, LastRow As Long, LTCtype As String, erow As Long 

LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row 
Application.ScreenUpdating = False 

For i = LastRow To 2 Step -1 
LTCtype = Cells(i, "BX") 

If (LTCtype = "UVT") Then     '''''''''''''''''''''''' 
ElseIf (LTCtype = "V2") Then    ' 
ElseIf (LTCtype = "V2A") Then    'Requirements For Sorting 
ElseIf (LTCtype = "RMV2") Then   ' 
ElseIf (LTCtype = "RMVA") Then   '''''''''''''''''''''''' 

ActiveCell.EntireRow.Cells(i, "BX").Select 
Selection.Cut 
erow = Sheet7.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).row 
ActiveSheet.Paste Destination:=Worksheets("V-LTC").Rows(erow) 

End If 

Next i 

delete_blank_rows 

End Sub 

Sub delete_blank_rows() 

Dim row As Long 

LastRow = ThisWorkbook.Sheets("LTC and Transfer").Cells(Rows.Count, 
1).End(xlUp).row 

row = 2 
For row = row To LastRow 
If Cells(row, 1) = "" Then 
Cells(row, 1).EntireRow.Delete 
End If 
Next row 

End Sub 
+0

* "有効にならないようです" *は有効な問題の説明ではありません。それはコンパイルされますか?それはランタイムエラーを発生させますか?どの行?エラーメッセージは何ですか?結果は期待と異なるのですか?彼らはどうですか?問題に関する十分な情報を提供してください。 –

+0

私はコンパイルするようですが、実際には何もしません。私は何かエラーがない、または少なくとも私はいくつかのものを変更した後もはやなっていない。投稿されたコードは最新のバージョンです。すべての参照が正確ですif文がおそらく何らかの作業を使用する可能性があり、正しいとは思わないです。私はそれが基準であることを見てほしいと思うし、それが最初のものを満たさなければ、それは次のものに行きたい。私は10年前と同じようにVBAに精通していないので、コーディングのいくつかは私がうまくいくと思っている推測です。 –

答えて

0

If文は間違っていますが、特にアクティブなシート材に頼って改善することもできます。

Sub V_LTC() 
    On Error GoTo Cleanup 
    Application.ScreenUpdating = False: Application.EnableEvents = False 
    Dim i As Long 

    With ThisWorkbook.Sheets("LTC and Transfer") 
    For i = .Cells(.Rows.count, "BX").End(xlUp).row To 2 Step -1 
     Select Case .Cells(i, "BX").Value2 
      Case "UVT", "V2", "V2A", "RMV2", "RMVA" 
      .Rows(i).Copy Worksheets("V-LTC").Cells(.Rows.count, 1).End(xlUp).Offset(1) 
      .Rows(i).Delete 
     End Select 
     Next i 
    End With 
Cleanup: 
    Application.ScreenUpdating = True: Application.EnableEvents = True 
End Sub 
+0

コードありがとうございました –

関連する問題