excel宏cells.find由于某种原因不会使用变量

时间:2013-01-10 20:14:35

标签: excel vba excel-vba clipboard

我将此代码作为excel宏。

  Dim MyData As DataObject
  Set MyData = New DataObject
  MyData.GetFromClipboard

  MsgBox MyData.GetText

  On Error GoTo NotFound
  Cells.Find(What:=MyData.GetText, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
  :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
  False, SearchFormat:=False).Activate

  NotFound:

MsgBox正确地写入了值,但What:=MyData.GetText只是无法正常工作。为什么?或者,更重要的是,如何修复它?

如果不清楚,我正试图找到下一个等于剪贴板中的值。我引用了MSForms,这不是问题。

如果我将MyData.GetText分配给变量并使用变量,同样的情况发生,MsgBox有效,但What:=myvariable没有。

1 个答案:

答案 0 :(得分:3)

不确定为什么会这样,但确实如此:

Sub test()
Dim MyData As DataObject
Dim rng As Excel.Range

Set MyData = New DataObject
MyData.GetFromClipboard
Set rng = ActiveSheet.Cells.Find(What:=MyData.GetText, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
                                 :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
                                 False, SearchFormat:=False)

rng.Activate
End Sub