Ash*_*ood 5 excel vba excel-vba
我一直试图解决这个问题几天,我只是无法理解它.我搜索了多个网站(甚至在这里几次),我看到很多人都问过这个问题,但解决方案对我不起作用.
我想找到范围中最后一个字符串,并将地址存储在变量中并显示一条消息,告诉我它在哪里.
到目前为止,我有这个
Private Sub CmdBtnClockIt_Click()
  Dim job As String
  Dim searchTerm as Range
  job = CmbBoxJob.Value
  searchTerm = Range("A1:A999").find(what:=job, searchorder:=xlByColumns, searchdirection:=xlPrevious).Column
  MsgBox "last cell is " & searchTerm.Address
End Sub
我似乎得到的只是"无效限定符"或"对象变量或未设置块变量"
任何帮助表示赞赏
第一个问题是searchTerm定义为一个Range对象.您必须使用Set关键字设置对象分配.所以任务就变成了Set searchTerm = Range("A1:A999")...
其次,如果searchTerm找不到,您将点击错误消息,因为searchTerm将为其分配值Nothing.我们可以通过使用简单的条件来检查是否job找到了这个问题来避免这个问题.
因此,您更新的内容Sub可能如下所示:
Private Sub CmdBtnClockIt_Click()
  Dim job As String
  Dim searchTerm As Range
  job = CmbBoxJob.Value
  Set searchTerm = Range("A1:A999").Find(what:=job, searchorder:=xlByColumns, searchdirection:=xlPrevious)
  If searchTerm Is Nothing Then
    MsgBox "Text was not found"
  Else
    MsgBox "Last cell is " & searchTerm.Address
  End If
End Sub