将userform上的combox上的信息移动到电子表格

时间:2014-07-19 21:10:25

标签: excel-vba vba excel

您好我有一个用户表单,它从电子表格中提取信息,供用户选择,然后我需要将他们的选择写入电子表格(在另一个表中,正确的答案,我有代码来解决输入了多少正确答案。

所以电子表格看起来像这样

第一页将保留所有问题并且在这里不重要

第二页从第一张中挑选10个随机问题,并按照这样的方式举行

问题ID主题问题答案1回答2回答3回答4正确选择 1 a sss 2 3 4 5“”

表3是我用来创建组合框

我需要拥有它,以便在组合框中选择的内容然后写在第2页的相关行中

请帮助

1 个答案:

答案 0 :(得分:0)

好;首先,您需要向我们提供您目前为止所尝试的内容以及问题所在,以便我们能够提供帮助,因为在您的问题中,您说您使用的是“用户形式”,但之后您继续说它实际上是你在Sheet3上创建的组合框。

假设它是你在“Sheet3”上创建的组合框:

AddCombobox http://im51.gulfup.com/1fszrk.png

Sheet3 http://im51.gulfup.com/HwEYy4.png

您必须填充第一个组合框“Combobox1”,以便在运行工作表时包含所有问题ID,因为这是我们将用于识别数据必须写入哪一行的内容。确保您的questionid字段只有唯一值!

因此,请将以下内容添加到“ThisWorkbook”代码中:

Private Sub Workbook_Open()
Worksheets("Sheet3").ComboBox1.Clear

Lastrow = Worksheets("Sheet2").Cells(Worksheets("Sheet2").Rows.Count, "A").End(xlUp).Row

For i = 2 To Lastrow
Worksheets("Sheet3").ComboBox1.AddItem Worksheets("Sheet2").Range("A" & i).Value
Next i
End Sub

这应该将所有问题ID加载到Combobox1中。现在将下面的内容添加到“Sheet3”代码中:

Private Sub ComboBox2_Change()
Lastrow = Worksheets("Sheet2").Cells(Worksheets("Sheet2").Rows.Count, "A").End(xlUp).Row

Set oLookin = Worksheets("Sheet2").Range("A1:A" & Lastrow)
sLookFor = Worksheets("Sheet3").ComboBox1.Value
Set oFound = oLookin.Find(What:=sLookFor, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)

If Not oFound Is Nothing Then
Worksheets("Sheet2").Range("B" & oFound.Row).Value = Worksheets("Sheet3").ComboBox2.Value 'change "B" to any other column
End If
End Sub

这应该找到在“Combobox1”中选择的questionid行,然后在更改为相应行的选定列时写入Combobox2的值。

示例工作簿:https://www.mediafire.com/?08133ox6kty4gv3

通过更详细的问题,答案可能会更好。