【问题标题】:.OnKey Macro linking.OnKey 宏链接
【发布时间】:2016-11-29 20:18:13
【问题描述】:

这是我的代码。除Sorter 外,所有宏都在按下各自的键时起作用。不知道为什么Handler 在按下键时没有调用宏。有什么想法吗?

Public Sub Workbook_Open()
Application.OnKey "^%{~}", "DailyStatusSorter"
End Sub

Public Sub DailyStatusSorter()
' DailyStatusSorter Macro
' Sorts Daily Staus buy completed, priority , then date from oldest to newest.
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Daily_Status").Sort.SortFields _
    .Clear
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Daily_Status").Sort.SortFields _
    .Add Key:=Range("Daily_Status[Last edited by]"), SortOn:=xlSortOnCellColor _
    , Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Daily_Status").Sort.SortFields _
    .Add Key:=Range("Daily_Status[Priority]"), SortOn:=xlSortOnValues, Order _
    :=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Daily_Status").Sort.SortFields _
    .Add Key:=Range("Daily_Status[Date]"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").ListObjects("Daily_Status").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
End Sub

【问题讨论】:

  • 您要运行它的确切组合键是什么?
  • Alt + Ctrl + Enter

标签: vba macros


【解决方案1】:

如果您想要 Ctrl + Alt + Enter 组合,请从密钥中删除 {}

Application.OnKey "^%~", "DailyStatusSorter"

如果您保留"^%{~}",则需要按Ctrl + Alt + Shift + ~

p.s.:将宏移动到一个独立的代码模块中,而不是在工作簿的代码模块中

【讨论】:

  • 不幸的是,按下键时仍然没有结果
  • @Andrew 您是否尝试使用具有相同代码的任何其他组合键来实现相同的功能?我的意思是尝试通过验证它是否只是由于组合键、到您调用它的位置(在 Workbook_open 等中)来缩小问题范围?(ps:它对我来说非常有效)
  • @Andrew 顺便说一下,尝试将宏移动到独立代码 Module,而不是在工作簿的代码模块中。
猜你喜欢
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
相关资源
最近更新 更多