用易语言向excel表格中写数据,单个range或者多个ranges采用循环方式写入数据,对excel的表格访问太过频繁,速度上有一定的影响,思维上不太直观,特别是要对表格中的多个单元格进行更多计算后并一次性写入时,就不容易了。因此,结合变体型变量的灵活性,用其代替多单元格区域属性进行一次写入操作,具体见如下代码:
.版本 2
.子程序 单元格区域操作, , , 对excel多行多列表格进行操作 .参数 定位, 编辑框 .参数 输入文本, 编辑框, 可空
.局部变量 excel, 对象 .局部变量 books, 对象 .局部变量 sheets, 对象 .局部变量 ranges, 对象 .局部变量 value, 变体型 .局部变量 cell1, 变体型 .局部变量 cell2, 变体型 .局部变量 分割文本, 文本型, , "0" .局部变量 b, 对象 .局部变量 mydata, 变体型 .局部变量 i, 整数型 .局部变量 a, 文本型, , "0"
分割文本 = 分割文本 (定位.内容, “:”, ) ' 填写单元格区域,如:“A15”或“A1:B3”.如果 (取数组成员数 (分割文本) > 1) cell1.赋值 (分割文本 [1], ) cell2.赋值 (分割文本 [2], ) .否则 cell1.赋值 (定位.内容, ) cell2.赋值 (定位.内容, ) .如果结束
excel.获取 (“excel.application”) books = excel.读对象型属性 (“ActiveWorkbook”, ) sheets = books.读对象型属性 (“Activesheet”, ) ranges = sheets.读对象型属性 (“Range”, cell1, cell2).读对象型属性 (“Resize”, 4, 3) ' 设置要操作的单元格区域mydata = ranges.读属性 (“Value”, ) ' 变体虽然是一维的,但可以直接等价于单元格区域,并且按先列后行的方式置放数据a = { “a1”, “2a”, “a3”, “4a”, “5b”, “r7”, “8”, “9”, “10”, “11” } ' 为了更清楚的表达,这里使用一个已经定义的文本数组.计次循环首 (取数组成员数 (a), i) mydata.赋值 (a [i], i) .计次循环尾 () ranges.写属性 (“Value”, mydata) ' 一次性写入数据,看起来有点方便呢mydata.清除 () excel.清除 ()