我对VBA和编程很新。我正在尝试以下方法:
如果找不到值,则显示消息
Private Sub btnUpdateEntry_Click()
Dim StringToFind As String
StringToFind = Application.InputBox("Enter string to find", "Find string")
Worksheets("output").Activate
ActiveSheet.Range("A:A").Select
Set cell = Selection.Find(What:="StringToFind", After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If cell Is Nothing Then
Worksheets("input").Activate
MsgBox "String not found"
End If
End Sub
答案 0 :(得分:1)
删除Find
声明中的双引号:
Set cell = Selection.Find(What:=StringToFind, After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
将其括在引号中意味着将其解释为文字字符串,而不是变量StringToFind
中保存的变量值。
可能还有其他错误。我没有进一步测试你的代码。如果您需要亲自去单元格,可以使用
Application.GoTo cell
或者你可以使用
cell.Activate
答案 1 :(得分:1)
如果唯一的目标是激活该单元格并查看它,您所要做的就是:
Selection.Find(what:="yourvalue").Activate
因此,不要设置cell =选择的值,而是使用上面的行