如何让Macro对我突出显示/选择的任何单词执行设定的操作顺序?
我录制自己选择一个单词,然后执行操作。我的想法是必须对我选择的任何单词进行操作。但是,当我选择任何其他单词来执行宏时,它只会执行“和”。
代码:
Sub Test()
'
' Test Macro
'
' Keyboard Shortcut: Option+Cmd+r
'
Range("AW2").Select
ActiveCell.FormulaR1C1 = "And"
Columns("N:N").Select
Selection.Insert Shift:=xlToRight
Range("N1").Select
ActiveCell.FormulaR1C1 = "And"
Range("N2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNUMBER(SEARCH(""And"", RC[-2]:R[4545]C[-2])), ""yes"", ""no"")"
Range("N2").Select
Selection.AutoFill Destination:=Range("N2:N4547")
Range("N2:N4547").Select
ActiveWindow.ScrollRow = 4577
Range("N4555").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(R[-4553]C:R[-8]C, ""yes"")"
Range("N4556").Select
End Sub
从本质上讲,我希望“And”替换为一个变量,意思是“我突出显示的任何单词”。
答案 0 :(得分:1)
如果我找到了你,请选择具有您要使用的值的单元格并运行以下代码:
Sub Test()
Dim str As String
str = Selection.Value
Columns("N:N").Insert Shift:=xlToRight
Range("N1").FormulaR1C1 = str
Range("N2").FormulaR1C1 = "=IF(ISNUMBER(SEARCH(""" & str & """, RC[-2]:R[4545]C[-2])), ""yes"", ""no"")"
Range("N2").AutoFill Destination:=Range("N2:N4547")
Range("N4555").FormulaR1C1 = "=COUNTIF(R[-4553]C:R[-8]C, ""yes"")"
End Sub
答案 1 :(得分:0)
编辑单元格时无法执行VBA代码。您必须在执行VBA之前保存或撤消更改。
您可以希望的最好的方法是复制值,然后在代码中询问该值,或让VBA检查剪贴板中的有效值。做后者很复杂,完全是另一个问题,所以我不会在这里详细说明,除了说网上有代码可以做到这一点。