2017-06-13 124 views
0

我正在构建一个宏工作簿,其中ctl+D已停用。
现在,问题是 - 当此宏工作簿仍处于打开状态时打开另一个工作簿时,ctl+D也会在其他工作簿中被禁用,因为这是应用程序级别设置。我想限制仅在宏工作簿中禁用ctl+DExcel vba - 如何在Excel VBA中引用工作簿内置文档属性?

为此,我可以在禁用ctl+D之前在代码中添加一个检查工作簿名称的条件。但是,用户在保存到桌面后可能会更改工作簿的名称的可能性有90%。

是否有我可以使用的方法工作簿内置属性而不是代码中的工作簿名称?请指教。

谢谢!

https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.builtindocumentproperties.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

实施例(伪码):

if ThisWorkbook.Title = 'TEST' Then 
    Application.OnKey "^d", "" 
end if 

回答

0

使用工作簿事件工作簿时激活或无法检测到。

Private Sub Workbook_Activate() 
    Application.OnKey "^d", "" 
End Sub 

Private Sub Workbook_Deactivate() 
    Application.OnKey "^d" 
End Sub 

把它放在ThisWorkbook模块中。您可能还想要将Ctrl + d取消激活行添加到Workbook_Open事件。

+0

@克里斯梅尔维尔 - 这工作。谢谢! – ksp585