由于某些原因,excelmacroscells.find不会使用variables

我有这个代码作为一个Excelmacros。

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不起作用。 为什么? 或者,更重要的是,如何解决?

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

如果我将MyData.GetText分配给一个variables并使用该variables,则会发生同样的情况, MsgBox工作,但是What:=myvariable不。

不知道为什么这个工作,但它确实:

 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