2015-05-13 21 views
1

我試圖在列末尾使用此用戶表單輸出選項按鈕結果。最初我嘗試在我的主模塊中使用相同的下一個循環,但用戶表單無法識別變量,即使在將其標記爲公共後也是如此。有任何想法嗎?如何在Excel VBA中的列末尾製作用戶表單輸出

Private Sub cmdOk_Click() 

If opt1 Then 
    Range(Range(「E3」), Range(「E3」).End(xlDown)) = "None" 
ElseIf opt2 Then 
    Range(Range(「E3」), Range(「E3」).End(xlDown)) = "3/8 Plain" 
ElseIf opt3 Then 
    Range(Range(「E3」), Range(「E3」).End(xlDown)) = "1/2 Plain" 
ElseIf opt4 Then 
    Range(Range(「E3」), Range(「E3」).End(xlDown)) = "1/2 Herringbone" 
ElseIf opt5 Then 
    Range(Range(「E3」), Range(「E3」).End(xlDown)) = "1/2 Diamond" 
End If 

Unload frmLagging 

End Sub 

回答

1

您需要找到該列中的最後一行,然後寫入它。這裏是一個例子(未經測試)。你可以閱讀更多關於發現最後一排Here

Dim ws As Worksheet 
Dim lRow As Long 
Dim rng As Range 

Set ws = ThisWorkbook.Sheets("Sheet1") 

With ws 
    '~~> We add 1 so that we get the next empty cell 
    lRow = .Range("E" & .Rows.Count).End(xlUp).Row + 1 

    Set rng = .Range("E" & lRow) 

    If opt1 Then 
     rng.Value = "None" 
    ElseIf opt2 Then 
     rng.Value = "3/8 Plain" 
    ElseIf opt3 Then 
     rng.Value = "1/2 Plain" 
    ElseIf opt4 Then 
     rng.Value = "1/2 Herringbone" 
    ElseIf opt5 Then 
     rng.Value = "1/2 Diamond" 
    End If 
End With 
Unload frmLagging 
+0

太謝謝你了!這救了我:) – FruitUser

0

此外, 這是我最喜歡的IIF語句之一,

Private Sub CommandButton1_Click() 
    Dim Rws As Long, Rng As Range, x 
    Rws = Cells(Rows.Count, "E").End(xlUp).Row 

    Set Rng = Cells(Rws + 1, "E") 

    x = IIf(Opt1, "None", IIf(Opt2, "3/8 Plain", IIf(Opt3, "1/2 Plain", IIf(Opt4, "1/2 Herringbone", IIf(Opt5, "1/2 Diamond", "Nada"))))) 
    Rng = x 

    Unload Me 
End Sub 
+0

調整後的代碼將值放入列A中的下一個空單元 – Davesexcel

相關問題