ThisDocument
对象如何引用包含代码的docm文件内容?
我已经在* .docm项目下插入了一个包含以下代码的模块:
Sub test()
Debug.Print ThisDocument.Name
End Sub
返回Normal.dotm
作为结果。
但是应该返回当前 docm 文件的名称。
如何设置“ Thisdocument”对象子例程引用当前的docm
文件?
任何帮助将不胜感激。
答案 0 :(得分:1)
获取包含您正在运行的代码的Excel文件的名称:
ALTER TABLE `reactions` CHANGE `emoji` `emoji` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;
获取您的代码当前正在引用的Excel文件的名称:
ThisWorkbook.Name
如果您从引用Excel文件的Word文档中运行代码,则应使用ActiveWorkbook.Name
。
本文将详细介绍ActiveWorkbook与ThisWorkbook。 Difference between Thisworkbook.name and Activeworkbook.name in VBA
答案 1 :(得分:0)
正如辛迪·梅斯特(Cindy Meister)所评论的那样,从标签和问题来看,尚不清楚您到底拥有什么(或头脑中有什么)。但是,假设您针对的是涉及Excel和Word应用程序的非常棘手和非常规的目标。在正常情况下,ThisDocument
永远不会引用Normal.dotm
(来自* .xlsm项目下的模块),但是由于您实现了它,并且还旨在“设置Thisdocument
对象是指当前对象xlsm文件”,我本可以从xlsm文件中的模块尝试这样做。
Global ThisDocument As Object
Sub calltest()
Dim wd As Word.Application
Set wd = CreateObject("Word.Application")
wd.Visible = True 'for demo only
Set ThisDocument = wd.Templates(1) 'This will result Normal.dotm (as you are experiencing - may be similar code is already in the calling routine)
test
Set ThisDocument = ThisWorkbook 'This will result workbook Containing the module with code
test
End Sub
Sub test()
Debug.Print ThisDocument.Name
End Sub
显然,假定已对Microsoft Word XX对象库进行了引用。