2016-08-01 39 views
0

我正在創建一個用戶表單,我希望能夠填充數據選項卡中的值以及默認爲某些值。 我想我有文本框和組合框,但無法找到使用多個可選按鈕生成數據到一個單元的信息取決於選擇。 example draft從用戶表單填充數據複選框和可選按鈕

從這個例子中,我的標準是「二級保險」我該如何去把它們全部鏈接起來,以便讓單元格b1填充選定的選項? 我完全猜測,但我認爲複選框更簡單一些,如果選中則爲true,如果未選中則爲false。 到目前爲止,我所看到的只是一個代碼,用於填充指定文本/組合框的值的單元格,並且正好針對每個需要爲其設置條件的列重複一次。

Private Sub CommandButton1_Click() 
    Dim LastRow As Long, ws As Worksheet 

    Set ws = Sheets("Sheet1") 
    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row 
    ws.Range("A" & LastRow).Value = TextBox1.Text 'Adds the TextBox1 into Col A & Last Blank Row 
    Me.Hide 
End Sub 

框列表

Private Sub UserForm_Initialize() 
ComboBox1.Value = ("N/A") 
ComboBox1.List = Split("N/A Yes No") 
End Sub 

請讓我知道如果我缺乏信息或如何附上我的測試工作,希望你能看到的畫面(我不能我的工作服務器上)。 提前感謝任何和所有的教育。

+0

你檢查了[THIS](http://www.homeandlearn.org/code_for_vba_option_buttons.html)嗎?對我來說,目前還不清楚你想要什麼,但是如果這是你正在尋找的東西,那麼這可能會幫助你開始很多... –

+0

我試圖理解我想要的,但我認爲它是完全不同。基本上我想用給定的選項填寫這個用戶表單,並讓它在數據選項卡中填充我的選擇。 因此,對於3個選項按鈕,我希望根據所選的選擇填寫「輔助保險」列的單個單元格。N/A,是或否 – Awill

回答

2

如果選項按鈕的標題是一樣的,你要爲單元格文本,那麼這樣的事情可能要存儲它是什麼:

Private Sub CommandButton1_Click() 
    Dim LastRow As Range 
    With Sheets("Sheet1") 
    Set LastRow = .Rows(.Cells(Rows.Count, 1).End(xlUp).Row + 1).Cells 
    If OptionButton1 Then 
     LastRow(2).Value2 = Me.OptionButton1.Caption 
    ElseIf Me.OptionButton2 Then 
     LastRow(2).Value2 = Me.OptionButton2.Caption 
    Else 
     LastRow(2).Value2 = Me.OptionButton3.Caption 
    End If 
    End With 
End Sub 

這將所需的細胞的值設置爲您選擇的選項按鈕的標題。

加載數據早在用戶窗體,您可以使用這樣的事情:

Sub Load_in(Row_To_Load As Long) 
    Dim MyRow As Range 
    With Sheets("Sheet1") 
    Set MyRow = .Rows(Row_To_Load).Cells 
    If MyRow(2).Value2 = OptionButton1.Caption Then 
     OptionButton1.Value = True 
    ElseIf MyRow(2).Value2 = OptionButton2.Caption Then 
     OptionButton2.Value = True 
    Else 
     OptionButton3.Value = True 
    End If 
    End With 
End Sub 

對於這一點,我認爲該名稱沒有被改變。同樣,如果沒有選擇,第三個選項(N/A)將被使用。加載它也是一樣。如果你不想要,只需將Else部分更改爲ElseIf,以便看起來像前兩個選項。

+0

是否使用查找示例中的最後一行更好或更有效的方式來使用它比我的? 我確實設法使用「如果選項按鈕1 = true,然後返回單元格B中的X值」的相同行中的東西來填充它。 – Awill

+0

我可能弄錯你的...因爲它應該做你正在尋找的東西...如果按鈕被按下,那麼它在B的單元格中寫入選項按鈕的標題......仍然可以使用LastRow(2).Value2 =「Yes」作爲第一個按鈕(和「否」爲第二個/「N/A」爲「Else」)...爲了取回它,您可以使用If If MyRow(2).Value2 =「Yes」然後是第一個(「No」對於第二個)...哦,並設置活動線路的方式......這隻取決於*「你喜歡什麼」*(只要時間無關緊要) –

+0

得到它的工作,但有沒有辦法使用N/A自動填充其他單元格基於此選擇?例如,如果這3個按鈕是單元格A的主要類別,這會導致對單元格B和C的附加選擇,則它們也將是「不適用」。我可以做到這一點,而不必爲每個選擇做一個「N/A」選擇嗎?我無法像我想的那樣將其他單元格/列添加到我的代碼中。 'ws.Range(「B,C」&LastRow.Value =「N/A」' – Awill