Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel宏:对选定单词的操作_Excel_Vba - Fatal编程技术网

Excel宏:对选定单词的操作

Excel宏:对选定单词的操作,excel,vba,Excel,Vba,如何让宏对我突出显示/选择的任何单词执行设置顺序的操作 我录下自己选择一个词,然后执行动作。我的想法是必须对我选择的任何词采取行动。但是,当我选择任何其他单词来执行宏时,它只对“And”执行 守则: Sub Test() ' ' Test Macro ' ' Keyboard Shortcut: Option+Cmd+r ' Range("AW2").Select ActiveCell.FormulaR1C1 = "And" Col

如何让宏对我突出显示/选择的任何单词执行设置顺序的操作

我录下自己选择一个词,然后执行动作。我的想法是必须对我选择的任何词采取行动。但是,当我选择任何其他单词来执行宏时,它只对“And”执行

守则:

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

本质上,我希望用一个表示“我高亮显示的任何单词”的变量替换“和”。

编辑单元格时不可能执行VBA代码。必须先保存或撤消更改,然后才能执行VBA


最好的方法是复制该值,然后在代码中请求该值,或者让VBA检查剪贴板中的有效值。执行后一种操作很复杂,完全是另一个问题,因此我在这里不作详细说明,只想说网络上有代码可用于执行此操作。

如果我没有弄错,请选择具有您要使用的值的单元格并运行此代码:

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将处于暂停状态。此外,您还应该显示您的代码,并详细说明哪些代码不起作用。请检查编辑。我希望宏应用于我高亮显示的任何单词。正如@DirkReichel所说的,“高亮显示”是什么意思?你是否正在编辑一个单元格,你在那个单元格的文本中“选择”一个单词(在这种情况下,你不能在那个时候运行一个宏),还是仅仅意味着你在选择一个包含单词的单元格?我想:1。选择包含字符串2的单元格。按宏键3。让宏创建新列,命名该字符串的第一行,选中其他框查看它是否包含该字符串,等等。谢谢!相反,我在VBA中创建了一个数组,然后对每个列表项执行宏操作。非常感谢!那正是我要找的!所以我寻找的逻辑是“Selection.Value”部分,我在网上根本找不到。