Excelmacros:对所选单词的操作

我怎样才能让macros在我突出显示/select的任何单词上进行一系列操作?

我logging自己select一个词,然后执行的行动。 这个想法是必须采取行动,我select的任何单词。 但是,当我select任何其他单词来执行macros,它只是做“和”。

代码:

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”replace一个variables,意思是“我突出显示的任何单词”。

如果我对你有用,请select你要使用的值的单元格,然后运行下面的代码:

 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 

在编辑单元格时不能执行VBA代码。 您必须在VBA执行之前保存或取消更改。

最好的方法是复制值,然后在代码中请求该值,或者让VBA检查剪贴板的有效值。 做后者是复杂的,完全是另外一个问题,所以在这里我不再详述,只是说网上有代码可以做到这一点。