VBA - SendKeys 粘贴语法错误 - 替换 excel 单元格时

VBA - SendKeys Paste Syntax Error - While replacing excel cells

我正在尝试使用 SendKeys 将一个单元格中的单词复制到替换 (CTRL+F) 函数中。

复制位很好,但此电子表格将用作模板,因此变量是该单元格中的内容,这意味着我正在使用发送键。

我愿意接受其他想法。

代码如下。

  Range("E5:G5").Select
Selection.Copy
Sheets("New Project Schedule").Select
Selection.Replace What:="New Merchant", Replacement:= SendKeys "^v" , LookAt= _
    :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Sheets("Out of Scope").Select
Selection.Replace What:="New Merchant", Replacement:= SendKeys "^v", LookAt= _
    :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Sheets("New Project Schedule").Select
Selection.Replace What:="Merchant", Replacement:= SendKeys "^v", LookAt:= _
    xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
Sheets("Out of Scope").Select
Selection.Replace What:="Merchant", Replacement:= SendKeys "^v", LookAt:=
    xlPart , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
End Sub

而不是复制三个单元格的块,然后尝试确定将它们粘贴到不同的工作表中,而是将三个单元格放入一个数组,然后决定数组应该在哪里存放在其他每一张纸上。

您不需要复制和粘贴 - 应该这样做:

Dim avSheets, vSheet
Dim sWord                 As String

avSheets = Array("New Project Schedule", "Out of Scope")

sWord = Range("E5:G5").Value

For Each vSheet In avSheets
    With Sheets(vSheet).Cells
        .Replace What:="New Merchant", Replacement:=sWord, _
                 LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                 SearchFormat:=False, ReplaceFormat:=False
        .Replace What:="Merchant", Replacement:=sWord, LookAt:=xlPart, _
                 SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    End With
Next vSheet