1

我将此代码作为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不会。

4

1 回答 1

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
于 2013-01-10T21:00:30.713 回答