这儿只讨论通过Activex的办法,由于只要这种办法,才干彻底发挥Excel的一切强壮的功用。
首要,Labview是有一些自带的关于Excel编程的比方的。在find example里search一下,有挺多的,其中有一个叫write table to XL.vi,我最早便是跟着它学的。学了不少,也被误导了好久,其实也不能算误导,仅仅曾经没花时刻去研讨。最近在用Labview写一个相似ERP相同的软件,触摸许多Excel表格,花了些功夫在Excel VBA上,也算比曾经有了更多的认识了。
先来看看write table to XL这个程序:这个程序的意图便是把一个2维数组(表格)里的内容写到excel里。
从上图看,进程大致是这样的,先翻开excel,再翻开一个workbook,然后翻开worksheet,这实际上跟咱们运用excel的进程是相同的。翻开worksheet今后,它还界说了行与列的header,最终才把table里的数据写到excel里。那个cell value子vi,我是从开端就用它,也像这个比方相同,每次写都是套俩for loop,然后往excel里面猛写。最近我才发现,本来有其他的办法,能够一次性写一个二维数组进去,非常快。其实想想也是,不至于会那么傻了。不过也怪VBA里太多的特点和办法,不容易找。
前边的翻开excel workbook和worksheet我就不说了,比方里就有,能够新建一个workbook和sheet,也能够翻开现有的,这个在excelexample.llb里都能找到。(excelexample在哪里?这个……,翻开这些个VI,saveas一下就知道在哪里了,ok?)
接下来说一下这几天找到的几个办法和特点。首要是Insert,刺进行或许列(就像你在excel里右键刺进相同,每次只能一行或许一列,要多行的话,只能多来几回了,是这样吧?)在说这个之前,先说下怎样找这些特点和办法,在Excel里,翻开VB编辑器(东西-》宏-》VB 编辑器,excel2007是在菜单开发东西下,我用的是Excel2007),翻开今后看VB言语参阅,要点便是里面的办法和特点,对应在Labview里面的Property和Method节点。help里能够查找,输入insert,能够看到许多,没办法,不熟悉只能一个一个看咯。看到range.insert办法今后,去和Labview的比对一下。
能够看到这便是咱们需求的办法了。由于改办法是在Range下的,所以要先翻开相应的range,才干用Insert,这就相当于咱们在Excel里,需求在哪里刺进相同的道理。而Shift参数,看VBA里的描绘,它是一个常量,是指定单元格的移动方向,点XLInsertShiftDirection就能够看到这个常量的数值,在这儿我就不贴图了。
接下来讲最有成就感的发现,怎么一次性读取或写入必定规模(若干行若干列)的数据?当然不能用cell.value来写了。有的朋友或许现已发现了。便是用Range Value来完成,这一点在VBA里没有写清楚,它给的比方仍是相当于cell value相同,仅仅一个单元格的值,而实际上,应该是你指定的Range里一切单元格的数值。
如上图,range办法包括两个参数cell1和cell2,所以range这个规模便是cell1到cell2的规模,比方B1到C5,这不便是一个2维数组了么?对,便是这样。
Range.value有两个,一个get,一个put,对应于读和写。假如cell2不连,那么便是只要一个单元格的值,那么这时候出来的就不是2维数组,而是一个数,连2维数组上去就会出错了。
还有其他许多办法和特点,比方兼并、拆分单元格,超链接,还有load,saveas之类的,这些都能够去参阅VBA,再自己稍加研讨,都是能找到的。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/213725.html