【问题标题】:Is it possible alter build in excel find replace dialog box using vba?是否可以使用 vba 在 excel 中更改构建查找替换对话框?
【发布时间】:2019-10-30 04:54:21
【问题描述】:

有没有什么方法可以使用 vba 更改在 excel 中查找替换对话框的构建?例如,我想禁用“内部”:工作簿标准。

我期望 excel 的输出仅在工作表中而不是在工作簿中替换工作

【问题讨论】:

  • 您可以制作自定义用户表单,但不能轻易更改内置对话框。
  • 我有点困惑,在查找和替换的高级选项中,您可以指定工作簿或工作表-您要更改什么?
  • 我想在高级选项中更改仅显示工作表
  • 关注问题的格式会提高其被其他人考虑的机会。在英语中正确大写并不难。

标签: excel vba


【解决方案1】:

您可以创建一个类似于“查找/替换”对话框的自定义表单,但没有要禁用的下拉菜单。然后你可以编写一个简单的 sub 来在用户按下 Ctrl+F 时显示表单:

Public Sub ShowFindDialog
    MyFindDialog.Show
End Sub

要将其分配给 Ctrl+f 键,请转到开发人员 -> 宏 -> 找到您的宏并单击“选项...” -> 指定“Ctrl+f”作为快捷键。

现在用户仍然可以通过功能区访问内置的查找/替换对话框。要删除它,请右键单击功能区并选择“自定义功能区...”。在窗口右侧展开“主页”选项卡,右键单击“编辑”组并选择“删除”。

编辑:关于自定义功能区的最后一点仅适用于您的计算机,并且适用于所有工作簿。如果您想将这些设置应用于特定工作簿,则变得更加困难。例如,您可以查看here

EDIT2:您可以使用Application.Dialogs(xlDialogFormulaFind).Show,而不是构建自定义表单。要仅针对一张纸执行此操作,请添加以下宏并将其分配给 Ctrl+F,正如我之前解释的那样:

Public Sub ShowFindDialog()
    If ActiveSheet.Name = "MySheet" Then
        'ON MySheet show find dialog without an option to search within workbook
        Application.Dialogs(xlDialogFormulaFind).Show
    Else
        'For all other sheets show regular find dialog
        Application.CommandBars("Edit").Controls("Find...").Execute
    End If
End Sub

【讨论】:

  • Excel 内置查找和替换对话框包含一些参数,如搜索、查找、匹配大小写...等。我只想在工作表 1 上查找或替换“在:工作表内”。 “在:工作簿内”在工作表 1 中被禁用,但它启用其他工作表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 2013-07-15
  • 2014-04-04
  • 2019-10-23
  • 1970-01-01
  • 2010-11-01
  • 2014-10-12
相关资源
最近更新 更多