在工作表中选择变量值

时间:2019-04-02 01:17:01

标签: excel vba

我正在创建一个用于案例审核的用户窗体,该窗体随机选择一个案例编号,将其显示在表单上的标签中,并通过Vlookup在同一表单上的文本框中显示相邻的单元格数据(该部分工作正常)。我添加了两个按钮,使用户可以为案例#涂上颜色,无论是好是坏。如何找到随机选择的案例编号所在的单元格,然后根据选择的是好还是坏按钮来覆盖该单元格?

Private Sub btnRandom_Click()
Dim x As Variant

lblText.Caption = Application.WorksheetFunction.Index(Sheet1.range("A2:A502"), WorksheetFunction.RandBetween(1, 501))

x = lblText.Caption

txtQuestion.Text = Application.WorksheetFunction.VLookup(x, Sheet1.range("A1:M502"), 8, False)

txtSolution.Text = Application.WorksheetFunction.VLookup(x, Sheet1.range("A1:M502"), 12, False)

End Sub

直到我点击标记为random的按钮,以上代码才会运行。

2 个答案:

答案 0 :(得分:0)

Find工作时的方法。

例如,这会将单元格涂成红色。

Sheet1.Range("A2:A502").Find(x,lookat:=xlWhole).Interior.Color = RGB(255,0,0)

请注意,最好的方法是在直接使用实例之前,先测试实例是否真正找到。但是由于您已经知道实例将在您之前的查找中找到,所以我已经跳过了这一部分。

答案 1 :(得分:0)

对于所有好奇的人来说,这就是对我有用的东西:

Private Sub btnRandom_Click()

Dim x As Variant

lblText.Caption = Application.WorksheetFunction.Index(Sheet1.range("A2:A502"), WorksheetFunction.RandBetween(1, 501))

x = lblText.Caption

txtQuestion.Text = Application.WorksheetFunction.VLookup(x, Sheet1.range("A1:M502"), 8, False)

txtSolution.Text = Application.WorksheetFunction.VLookup(x, Sheet1.range("A1:M502"), 12, False)

Sheet1.range("A2:A502").Find(x, lookat:=xlWhole).Select

End Sub


Private Sub btnBad_Click()

ActiveCell.Interior.ColorIndex = 3

End Sub