VBA检查单元格并显示在另一张纸上找到的值

时间:2019-02-26 14:43:31

标签: excel vba

当前首次在Excel VBA中工作,希望使用一个命令按钮,按下该按钮将检查3个单元格中的值,然后在下面的单元格中的另一个工作表上显示找到的值。到目前为止,我有:

Private Sub CommandButton1_Click()
= IF cells(b,1).Value2 = "A"
And cells(b,2).Value2 = "OO"
And cells(b,3).Value2 = "<48"
Then calls(b,10).Value2 = Worksheets("Rates"). cells(b,4)
End Sub

这是我的第一次尝试,尽管它不起作用并且不确定如何前进。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

需要注意的几件事:

  1. 可以使用连接字符串和VLOOKUP(如果您不接受非VBA解决方案,则为
  2. 在代码顶部添加Option Explicit,这将捕获calls(b, 10)之类的错字
  3. 您不要以=
  4. 开头If语句
  5. 使用单元格进行范围引用的正确语法是Cells(Row Index, Column Index)-您已经倒过来了,但是由于您使用的是静态范围,Range可能会更直观
  6. 尝试使用工作表限定所有对象。请注意,您的Cells不会每次都声明哪张纸。言简意and,将来您不太可能出现错误

Option Explicit

Private Sub CommandButton1_Click()

Dim ws as Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- Update

If ws.Range("B1") = "A" And ws.Range("B2") = "OO" and ws.Range("B3") = "<48" Then
    ws.Range("B10").Value = Worksheets("Rates").Range("B4").Value
End If

End Sub