我有这个代码:
Public channel As Long
Sub Button1_Click()
MsgBox "all is OK"
' Application.ActiveCell.Font.Bold = True
channel = Application.DDEInitiate("Excel", "System")
MsgBox "Conversation started"
End Sub
为什么 DDEInitiate 表达式给出错误 13?
@VincentG提到的 office-watch 博客中显示的注册表项仅与 Writer 相关。Excel有自己的一组键(可以使用Sysinternals ProcMon进行检查,无论是在Excel启动时,还是从VBA调用DDEInitiate时(,这些键至少是:
- 在
HKCUSOFTWAREMicrosoftOffice16.0ExcelOptions
-DDEAllowed:REG_DWORD=1
- 在
HKCUSOFTWAREMicrosoftOffice16.0ExcelSecurity
-DisableDDEServerLaunch:REG_DWORD=0
,DisableDDEServerLookup:REG_DWORD=0
.
我没有检查其中哪些是最低要求。无论如何,启用 DDE 确实会带来安全风险。