【问题标题】:Excel Macro: Action To Selected WordExcel 宏:对选定单词的操作
【发布时间】:2017-09-13 19:07:05
【问题描述】:

如何让宏对我突出显示/选择的任何单词执行一组操作?

我记录了自己选择一个词,然后执行动作。这个想法是必须对我选择的任何单词执行操作。但是,当我选择任何其他词来执行宏时,它只会执行“与”。

代码:

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”替换为表示“我突出显示的任何单词”的变量。

【问题讨论】:

  • “突出显示”是什么意思?如果您编辑单元格,VBA 将停止。此外,您应该显示您拥有的代码并详细说明哪些代码不起作用。
  • 检查编辑。我希望将宏应用于我突出显示的任何单词。
  • 正如@DirkReichel 所说,“突出显示”是什么意思?您是在编辑一个单元格并且您在该单元格的文本中“选择”了一个单词(在这种情况下您将无法在此时运行宏),还是您只是意味着您正在选择一个包含单词的单元格?
  • 我想要: 1. 选择一个包含字符串的单元格 2. 按宏键 3. 让宏创建新列,命名该字符串的第一行,检查其他框是否包含该字符串等。

标签: excel vba


【解决方案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

【讨论】:

  • 非常感谢!这正是我一直在寻找的!所以我一直在寻找的逻辑是“Selection.Value”部分,我在网上根本找不到。
【解决方案2】:

在编辑单元格时无法执行 VBA 代码。在执行 VBA 之前,您必须保存或撤消更改。

您希望的最好结果是复制该值,然后在您的代码中请求该值,或者让 VBA 检查剪贴板中的有效值。做后者很复杂,完全是另一个问题,所以我不会在这里详细说明,只是说网上有代码可以做到这一点。

【讨论】:

  • 谢谢!相反,我开始在 VBA 中创建一个数组,然后为每个列表项执行宏操作。
猜你喜欢
  • 1970-01-01
  • 2014-09-20
  • 2019-10-11
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多