2016-12-08 8 views
0

問題は列「A」です。この列に今日の日付を最初の空行に貼り付ける必要があります。しかし、私はそれを2回ペーストする。 1回UserForm1が表示され、CommandButton1をクリックすると2回目です。 。他のすべてがUserForm1でからのデータが最後の行に貼り付けられ+ 1号のみの列「A」である(正常に動作します 以下のコード見つけてください:値が列に2回貼り付けられます

Private Sub CommandButton1_Click() 


Call UserForm_Initialize 

Unload Me 
End Sub 


Private Sub UserForm_Initialize() 

Dim LastRow As Long, ws As Worksheet 

'UserForm1.Label9.Caption = ws.Range("A1").Value 

Set ws = Sheets("Log") 

With ComboBox1 
    .AddItem "Quality" 
    .AddItem "Time" 
    .AddItem "Money" 
End With 


LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 'ostatni wiersz 


'entry date 
    ws.Range("A1").Copy 
     Sheets("Log").Range("A" & LastRow).PasteSpecial xlPasteValues 

'pasting data from form 
'ws.Range("A" & LastRow).Value = Label9.Caption 
ws.Range("B" & LastRow).Value = TextBox8.Text 
ws.Range("C" & LastRow).Value = TextBox1.Text 
ws.Range("D" & LastRow).Value = TextBox2.Text 
ws.Range("E" & LastRow).Value = TextBox3.Text 
ws.Range("F" & LastRow).Value = TextBox4.Text 
ws.Range("G" & LastRow).Value = TextBox5.Text 
ws.Range("H" & LastRow).Value = ComboBox1.Text 
ws.Range("I" & LastRow).Value = TextBox6.Text 
ws.Range("J" & LastRow).Value = TextBox7.Text 
End Sub 

を助けてください

答えて

0

UserForm_Initialize()は毎回実行されます。このユーザーフォームが表示されるたびにUserForm_Initialize()からコード全体を実行していて、CommandButton1をクリックすると、すべてのTextBoxが空であるため、列Aのみに問題があるので、プログラム残りのセルには何も書き込まれません。ここでの解決策は、Userformを初期化するコードの部分と、値をセルにコピーする部分とを分離することです。あなたはこのようにすることができます:

Private Sub CommandButton1_Click() 
    CopyToCells 
    Unload Me 
End Sub 

Private Sub UserForm_Initialize() 
    With ComboBox1 
     .AddItem "Quality" 
     .AddItem "Time" 
     .AddItem "Money" 
    End With 
End Sub 

Sub CopyToCells() 
    Dim LastRow As Long, ws As Worksheet 
    Set ws = Sheets("Log") 

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).row + 1 'ostatni wiersz 

    'entry date 
    ws.Range("A1").Copy 
    Sheets("Log").Range("A" & LastRow).PasteSpecial xlPasteValues 

    'pasting data from form 
    ws.Range("B" & LastRow).Value = TextBox8.Text 
    ws.Range("C" & LastRow).Value = TextBox1.Text 
    ws.Range("D" & LastRow).Value = TextBox2.Text 
    ws.Range("E" & LastRow).Value = TextBox3.Text 
    ws.Range("F" & LastRow).Value = TextBox4.Text 
    ws.Range("G" & LastRow).Value = TextBox5.Text 
    ws.Range("H" & LastRow).Value = ComboBox1.Text 
    ws.Range("I" & LastRow).Value = TextBox6.Text 
    ws.Range("J" & LastRow).Value = TextBox7.Text 
End Sub 
+0

ありがとうございました。今、私はそれがどのようにお互いに伝えられたのか、なぜそのようになったのかを理解しています。あなたは素晴らしい! – Igor

+0

問題なし、pozdrowienia zポズナニア;) – Limak

関連する問題