77范文网 - 专业文章范例文档资料分享平台

利用VBA编程实现从EXCEL表到AUTOCAD表转换(2)

来源:网络收集 时间:2021-04-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

利用VBA编程实现从EXCEL表到AUTOCAD表转换

对象,可以获得许多信息。访问分析表格的属性应从分析range开始。每一个range包括许多对象和属性,例如,font对象可以返回range的字体信息。通过遍历,即可获得整个表格信息。获取表格信息的目的在于准确地按照位置画表格线,同时确定文字位置。

---- 在获取表格信息时,存在一个最佳算法问题。以下就画线问题为例,阐明问题和解决方法。

---- 假设表格由a(a>=1)行b(b>=1)列组成,x,y为循环变量, 表格完全由单元格组成,由于在每个单元格都有4条边,让x从1开始循环到a, 再y从1开始循环到b,读取每个单元格的4条边,会读取a*b*4次,重复读取a*b*2次。当x=1时,读取上边;当y=1时读取,左边,其余情况读取右边,下边。共读取a+b+ a*b*2次。以3行4列为例,共读取3+4+3*4*2=31次,与实际表格的边数相同,没有重复读取。

---- 对合并单元格信息的读取是个难点。因为如果按照单元格的位置依次读取,那么由a行b列个单元格(cell)合并而成的单元格区域(range)仅有4条边,采用上述计算方法,需要读取a+b+ a*b*2次,重复读取a+b+ a*b*2 - 4次。以以3行4列为例,共读取3+4+3*4*2=31次,重复读取31 - 4=27次。算法有重复。如果按照行号,列号读取,合并单元格的行号、列号只有一个,其值为最靠左、靠上的那个单元格的行号、列号。例如,将A2:E5的单元格合并后,其行号为2,列号为A。这样由多个合并单元格组合后的表格行号、列号有间断,不连续,无法进行循环读取信息。笔者通过研究发现,函数address()和单元格的mergearea属性可以获得合并单元格的准确信息。具体方法为:读取cells(x,y)单元格时,用address()判断包含cells(x,y)单元格的合并单元格区域c.mergearea的绝对地址,如果前4个字符与cells(x,y) 单元格的地址相同,为cells(x,y)单元格为合并单元格区域最靠上、靠左的那个合并单元格,读取其4条边信息,否则不读取。这样,彻底避免了重复读取,同时提高了整个读取和画线速度。

---- 在AutoCAD中,线条有多种,考虑能够方便控制线条属性,选用了多义线。具体命令如下: RetVal = object.AddLightWeightPolyline(VerticesList)

---- 下面的程序演示表格线条读取和画表格线的具体过程。

Sub hxw()

Dim a as interger ‘表格的最大行数

Dim b as interger ‘表格的最大列数

Dim xinit as double ‘插入点x坐标

Dim yinit as double ‘插入点y坐标

Dim zinit as double ‘插入点z坐标

Dim xinsert as double ‘当前单元格的左上角点的x左标

Dim yinsert as double ’当前单元格的左上角点的y左标

Dim ptarray (0 to 2) as double

Dim x as integer

Dim y as integer

For x =1 to a

For y=1 to b

Set c = xlsheet.Range(zh(y) + Trim(Str(x)))

‘以行号、列号获得单元格地址

Set ma = c.MergeArea

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库利用VBA编程实现从EXCEL表到AUTOCAD表转换(2)在线全文阅读。

利用VBA编程实现从EXCEL表到AUTOCAD表转换(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1204346.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: