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
我正在尝试使用 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