【问题标题】:Run VBA macro from a hotkey从热键运行 VBA 宏
【发布时间】:2020-04-20 05:00:10
【问题描述】:

我有这个宏来格式化我的 Excel 工作表。它会更改顶行的颜色并添加过滤器、冻结窗格等。

我有一个保存到的个人工作簿,因此我可以在我打开的任何 Excel 文件中使用它。

如果我从开发人员选项卡运行宏,它就可以工作。如果我尝试使用热键运行它,它不起作用。

当我使用热键时唯一起作用的是它会在第一行添加一个过滤器。

Sub FormatSheet()
'
' FormatSheet Macro
'
' Keyboard Shortcut: Ctrl+Shift+L

Worksheets(1).Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.349986266670736
    .PatternTintAndShade = 0
End With
Selection.AutoFilter
With ActiveWindow
    .SplitColumn = 0
    .SplitRow = 1
End With
ActiveWindow.FreezePanes = True
Cells.Select
With Selection
    .HorizontalAlignment = xlLeft
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
End With
Cells.EntireColumn.AutoFit

End Sub

【问题讨论】:

  • 让我看看我是否明白。您说宏运行,但是当您使用热键时它的运行方式不同。对吗?
  • 正确。不过,我将宏保存在另一个工作簿的模块中。我有一种感觉,这就是导致问题的原因。我希望宏可以处理我打开的所有 excel 文件,而不仅仅是一个工作簿。所以这就是我把它保存在那里的原因。
  • 如果您使用两个工作簿,则需要使用显式对象引用。您的代码当前默认为当前处于活动状态的任何工作簿/工作表,这会产生奇怪的结果。

标签: excel vba hotkeys


【解决方案1】:

你设置了热键吗?打开你的宏(Alt+f8)去选项(那个宏)并设置你的ctrl+shift+L。 此外,命名模块会删除所有热键功能。

【讨论】:

  • 这正是正在发生的事情。我认为它也可以工作,因为 Ctrl+Shift+L 添加了一个过滤器。实际上,它永远不会太有趣。只是我的运气。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多