2016-10-03 11 views
-1

イム、私はユーザーフォームエクセルVBA次の行に追加する追加のエントリエクセルVBAでちょっと新しい

を使用してExcelで私の次の行に任意のデータを追加傾ける要するに、このいずれかでいくつかの修正を必要としますこれは、このいずれかを試してみてください私のコード

Private Sub CommandButton1_Click() 
Dim ssheet As Worksheet 


Set ssheet = ThisWorkbook.Sheets("Sheet1") 

nr = ssheet.Cells(Rows.Count, 1).End(x1Up).Row + 1 

ssheet.Cells(nr, 1) = CDate(Me.Label1) 
ssheet.Cells(nr, 2) = Me.ComboBox1 
ssheet.Cells(nr, 3) = Me.ComboBox2 

End Sub 
+1

'NR = ssheet.Cells(ssheet.Rows.Count、1).END(x1Up).Row + 1 'の代わりにしてみてください'nr = ssheet.Cells(Rows.Count、1).End(x1Up).Row + 1'。また、明示的にコーディングしてみてください。したがって、 'ssheet.Cells(nr、2)= Me.ComboBox1'の代わりに' ssheet.Cells(nr、2)= UserForm1.ComboBox1'(または名前が何であれ)を使用してください。これは 'ActiveWorkbook'ではなく' ThisWorkbook'を使用しているのと同じ理由からです。しかし、1つの質問:コードが実行されているときに 'UserForm'はまだ表示/ロードされていますか?それ以外の場合は、フォームがクリーンアウトされ、 'ComboBox1'と他のフィールドはすべて空白になります。 – Ralph

+0

あなたはどんなエラーを受けていますか? – Brian

+1

xlUp。 xL。 L. Not 1、L.近くの学生のモニターからコードをコピーすると、次のようなエラーが発生する可能性があります。 – vacip

答えて

0

です:

Private Sub CommandButton1_Click() 
    Dim ssheet As Worksheet 

    Set ssheet = ThisWorkbook.Sheets("Sheet1") 

    nr = ssheet.Range("A1048576").End(xlUp).Row + 1 

    ssheet.Cells(nr, 1) = 1 
    ssheet.Cells(nr, 2) = 2 
    ssheet.Cells(nr, 3) = 3 
    End Sub 
+2

'Range(" A1048576 ")'は 'Cells(Rows.Count、1)'よりも優れているとは思いません。 'xlUp'は' x1Up'よりも確かに優れています。 – vacip

関連する問題