2016-10-31 7 views
1

Excelで入力フォームに入力された列「B」の値を持つ行を切断するユーザーフォームユーザーフォームからさらに3つの値を追加しながら、sheet2に行を貼り付けます。これは私が持っているものですが、現在私のために何もしていません:Excelユーザーフォームを使用して「x」行を削除し、行を削除して別のシートに貼り付けます。

Private Sub OkButton2_Click() 

Dim i As Long: i = 1 
With ActiveSheet 
    For n = nLastRow To nFirstRow Step -1 
     If .Cells(n, "B") = "ChartTextBox2.Value" Then 
      .Cells(n, "B").EntireRow.Cut Sheet2.Cells(i, "A") 
      .Cells(n, "B").EntireRow.Delete 
      i = i + 1 
'Transfer information 
Sheets("Sheet2").Cells(emptyRow, 7).Value = DTPicker4.Value 
Sheets("Sheet2").Cells(emptyRow, 8).Value = DispoTextBox.Value 
Sheets("Sheet2").Cells(emptyRow, 9).Value = ReasonTextBox.Value 
     End If 
    Next 
    End With 
End Sub 
+0

「セル(emptyRow、Sheet2,11)」は使用方法ではありません。 'Sheets(" Sheet2 ")を意味しますか?Cells(emptyRow、11)'? – BruceWayne

答えて

0

以下のコードは私にとってうまくいきました。テキスト"ChartTextBox2.Value"またはテキストボックスChartTextBox2のテキストと比較していますか?あなたがテキストボックスのテキストと比較していると仮定すると、以下のコードはうまく動作します。あなたのコードでもnLastRownFirstRowは宣言されていません。そうでない場合は、これらのステートメントを削除することができます。

Private Sub OkButton2_Click() 
    Dim nLastRow As Long 'If already declared neglect this statement 
    Dim nFirstRow As Long 'If already declared neglect this statement 
    Dim i As Long: i = 1 

    nLastRow = ActiveSheet.UsedRange.Rows.Count 'If already specified neglect this statement 
    nFirstRow = ActiveSheet.UsedRange.Row   'If already specified neglect this statement 

    With ActiveSheet 
    For n = nLastRow To nFirstRow Step -1 
     If .Cells(n, "B") = ChartTextBox2.Value Then 
     .Cells(n, "B").EntireRow.Cut Sheets("Sheet2").Cells(i, "A") 
     .Cells(n, "B").EntireRow.Delete 
     i = i + 1 
     'Transfer information 
     Sheets("Sheet2").Cells(emptyRow, 7).Value = DTPicker4.Value 
     Sheets("Sheet2").Cells(emptyRow, 8).Value = DispoTextBox.Value 
     Sheets("Sheet2").Cells(emptyRow, 9).Value = ReasonTextBox.Value 
     End If 
    Next 
    End With 
End Sub 
+0

まだ私のために働いていない:(私の狂気を運転する、私はそれをぶら下がっている何かを見つけることができません...何もバグ...ただ何もない:P ChartTextBox2テキストボックス内のテキストと比較します。 –

+0

ステートメントのほとんどをコメントし、私はブレークポイントを入れてF8でデバッグしようとしましたか? –

+0

ブレークポイントを使用してデバッガを使用したとき、私が捕捉しているところは無限ループです: .Cells(n、 "B")= ChartTextBox2.Value Then End If .Cells(n、 "B")= ChartTextBox2.Value –