SetBlockTableRecordId问题
我提交了一个我已经发布的帖子https://forums.autodesk.com/t5/visual-basic-customization/setblocktablerecordid-issue/td-p/9157637到目前为止,没有任何解决方案;m从Excel for Office 365 32位VBA应用程序7.1版中进行编码,并在W10笔记本电脑中使用;m引用AutoCAD 2018类型库并尝试使用SetBlockTableRecordId;使用以下代码线将块插入表格单元格的方法:myTable.SetBlockTableRecordId j + 1, 0, myDoc.Blocks("blockName").ObjectID, True
然而,我';我得到一个编译错误,用“quot;编译器错误:不对应类型;作为(hoepfully)最接近的翻译,同一个语句不';如果我在AutoCAD 2018 VBA 7.1环境中编码,我会出错,我知道(或者至少我认为)这与32/64位有关,并且盲目地尝试了这两种方法myTable.SetBlockTableRecordId j + 1, 0, myDoc.Blocks("blockName").ObjectID32 , True myTable.SetBlockTableRecordId j + 1, 0, CLngPtr(myDoc.Blocks("blockName").ObjectID) 但没有任何效果,可能有人感兴趣的是:
-;CLngPtr“;,编译错误将突出显示“QUOTE;”;。ObjectID“;声明的一部分-带有;CLngPtr“ ;编译错误将突出显示“QUOTE;”;。CLngPtr“;第I和039部分;我认为我的Excel 32位永远不会处理对需要一些64位参数的方法(SetBlockTableRecordId)的调用
有人知道解决方案吗
谢谢你
您是否尝试过将SetBlockTableRecordId32方法与ObjectID32属性结合使用? 谢谢李抽出时间;SetBlockTableRecordId32“;方法:039;t由intellisense列出,无论如何,我尝试了它,作为确认,我得到了运行时错误#039;438' 对象不支持的属性或方法 也许检查GetBlockTableRecordId返回的内容会有所帮助? 如果你的意思是我必须处理一个长ptr值,那么我已经尝试了CLngPtr(),但没有成功
或者你是说别的什么
谢谢你 只是一点额外的信息,这可能没有多大帮助:你说;报价(>)
-带有;CLngPtr“ ;编译错误将突出显示“QUOTE;”;。CLngPtr“;部分/报价>
我有点困惑:CLngPtr()是一个全局函数,而不是一个对象的函数。那么,为什么是“the”";,这显然会导致编译错误。如果是&引用;只是在你的帖子中输入错误,那么你是这样说的代码:
myTable。SetBlockTableRecordId j+1,0,CLngPtr(myDoc.Blocks(“blockName”)。ObjectID)
仍然通过高亮显示ClngPtr()给出编译错误
这是我从MS Office 2016 suite(也是VBA7.1 32位)获得的单机Excel 2016。我写了几行代码来设置一个AcadTable,其中一行调用myTable。SetBlockTableRecordId(…,,…)
无论是否用ClngPtr包装,只要我编译代码(菜单=>;调试->;编译…),VBA IDE就会冻结,我必须杀死AutoCAD
如果我注释掉这行代码,编译/运行就可以了。你可以看到这里的区别:你至少可以在Office 365中用Excel进行编译,即使它没有通过;在我看来,当特定代码行存在时,编译本身会使AutoCAD VBA崩溃
所以,我';如果我是你的话,我可能会因此放弃运行Excel VBA代码来自动化AutoCAD的想法
很抱歉延迟回复。您是否尝试在SetBlockTableRecordId中使用GetBlockTableRecordId的返回值? @roy_043;返回单元格的块表记录ID
所以我必须首先在想要的单元格中放置一个blockreference,以便使用它,但这正是我的目标,所以我想我';在任何情况下,我也尝试先在单元格中手动放置块引用,然后使用GetBlockTableRecordI和GetBlockTableRecordI2方法来检索该单元格中的块Id,但在这两种情况下,Excel都会自动崩溃… 感谢诺曼的时间和见解,这是我的打字错误:“之前没有点”;CLngPtr(";
当然有可能,但AutoCAD部分是一个非常小的部分,介于许多和沉重的Excel部分之间。因此,我宁愿采取变通方法,甚至放弃表单元块插入。或者等待64位Excel…
Can#039;你不能这样做吗;手动#039;?
页:
[1]
2