MikeJarosz 发表于 2006-9-5 15:39:18

从Acad运行Excel

我正在通过一个程序从acad绘图标题块创建Excel绘图列表。我已经成功读取了. dwg文件并将它们转储到Excel中。但是,我认为在Acad VBA中格式化Excel文件不是一个好主意,因为Excel VBA格式化代码非常冗长,最好在Excel本地运行。我想做的是将文件“FormatDwgList.bas”加载到Excel文件中并在那里运行,这样用户就会得到成品。它归结为两行代码:
FormatList="c:\script\FormatDwgList.bas"
.
.
.
XL.VBE.ActiveVBProject.VBComponents.ImportFormatList
XL.Run"FormatDwgList", WSheet
. bas文件实际加载并出现在工作表中。但是,当VBA到达XL.Run命令时,我得到运行时错误1004“找不到宏FormatDwgList”我从Microsoft知识库中得到了这个语法。
会不会是synchcronize问题?
**** Hidden Message *****

Malik641 发表于 2006-9-6 01:01:56

我试过你的建议。还是同样的错误。我把时间增加到5秒,但还是没有运气。我还将导入移动到尽可能远离运行的位置
未找到的错误似乎是这里的关键。我是否没有提供足够的信息来在Excel中查找代码模块,这是一个非同步问题还是其他问题?我已经三次核对了所有的名字。该文件是格式化的.glist。在bas中,子模块名为formattwglist,模块名为Formattwglish。这个程序让我非常伤心,直到我发现办公自动化中的“不合格引用”情况。也许我不能只引用FormatdGlist,而是需要使用完全限定的对象变量?(只是大声思考)

MikeJarosz 发表于 2006-9-6 10:01:51

我只是好奇你在excel中格式化转储是什么意思?我把我的标题栏信息读入excel,它就在我想要的地方,看起来和我期望的一样。也许我没什么期望(哈哈)。不管怎样,我想看看你做了什么来与我的方法进行比较。如果这对你有帮助的话,我可以发布我的代码。

MikeJarosz 发表于 2006-9-6 10:11:06

我所说的格式化,指的是字体、颜色、单元格轮廓等。Excel VBA的一个小示例如下所示:
'格式标题行
带范围(单元格(1,1),单元格(1, xCols))
。Interior.ColorIndex=15
。Interior.Pattern=xlSolid
。Font.Bold=True
。HorizontalAliment=xlCenter
。Vertical校准ment=xlCenter
结束with
'格式修订标题
行("1:1")。RowHeight=95
带范围(单元格(1,6),单元格(1, xCols))
。Horizontal ment=xlCenter
。Vertical校准ment=xlBottom
。方向=90
。WrapText=True
。Font.Size=8
结束
正如我指出的,Excel VBA中的这种东西非常冗长。由于Office自动化中的不合格引用问题,从acad运行Excel代码会变得更糟。(参见MS KB#319832)这就是为什么我想在Excel中本机运行它。

MikeJarosz 发表于 2006-9-8 17:29:09

那么,您能否使用一组代码从Autocad中提取,将其转储到已经完成格式化的Excel模板中,然后从那里开始? 还是从autocad转储,然后从Excel格式化?

Malik641 发表于 2006-9-8 17:51:24

我使用acad VBA从图纸中提取信息并将其转储到Excel中。然后仍然在Acad VBA控制下,我将Excel VBA模块加载到Excel中,并尝试让Excel在Excel中本地运行它。以这种方式处理它有两个很好的理由。首先,Excel工作表中的行和列变化很大。Excel更容易确定工作表的范围。
其次,更重要的是,Excel VBA中的格式化命令非常冗长。理论上,它们可以从Acad VBA发出,但它们必须完全合格,否则您将启动Excel的幻像副本。(参见MS知识库319832)。
真正烦人的是,我可以将BASIC文件加载到Excel代码模块中,但我无法让它运行。

MikeJarosz 发表于 2006-9-14 11:24:04

嘿,迈克,很抱歉我花了这么长时间才发回…
请尝试先使用以下语法显式调用工作簿:
应用程序。运行“MyWorkbook.xls!FormatdGlist”,WSheet
希望这样做。
页: [1]
查看完整版本: 从Acad运行Excel