2017-06-13 85 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