xowen 发表于 2012-3-10 16:54:31

【已解决】如何返回XLS中的拼合单元格拼合了多少个单元?

本帖最后由 xowen 于 2012-3-13 10:26 编辑


如图,有一个单元格是纵向拼合的,另一个单元是横向拼合过的,那位高手知道怎么返回拼合单元格的数目,例如,返回红色标记处的为3个行被拼合,蓝色标记处的为3个列被拼合。谢谢!
#include <Excel.au3>
$Excel = _ExcelBookOpen(‘test.xls’, 0)
If $Excel.ActiveSheet.Range("B13:C13").MergeCells = True Then;===>我只知道这个可以检测单元格是否是拼合过的,但是无法分别知道有几列或行被拼合。
    $msg=$Excel.ActiveSheet.Range("A1").MergeArea.Count ;===>这样可以得到行、列的乘积。
    msgbox(0,'',$msg)
Endif

kevinch 发表于 2012-3-10 20:07:29

给个代码,帮你改下试试

xowen 发表于 2012-3-12 11:07:53

回复 2# kevinch
我只知道这个可以检测单元格是否是拼合过的,但是无法分别知道有几列或行被拼合。可以得到行、列的乘积。
#include <Excel.au3>
$Excel = _ExcelBookOpen(‘test.xls’, 0)
If $Excel.ActiveSheet.Range("B13:C13").MergeCells = True Then;===>我只知道这个可以检测单元格是否是拼合过的,但是无法分别知道有几列或行被拼合。
    $msg=$Excel.ActiveSheet.Range("A1").MergeArea.Count ;===>这样可以得到行、列的乘积。
    msgbox(0,'',$msg)
Endif

kevinch 发表于 2012-3-12 14:49:21

#include <Excel.au3>
$Excel = _ExcelBookOpen(‘test.xls’, 0)
If $Excel.ActiveSheet.Range("B13:C13").MergeCells = True Then;===>我只知道这个可以检测单元格是否是拼合过的,但是无法分别知道有几列或行被拼合。
    $msgr=$Excel.ActiveSheet.Range("A1").MergeArea.rows.Count
      $msgc=$Excel.ActiveSheet.Range("A1").MergeArea.columns.Count
    msgbox(0,'',$msgr&"行"&$msgc&"列")
Endif这样试下
MergeArea.Count其实是MergeArea.cells.Count的简写形式,得到的是合并区域的单元格总数,把cells换成rows(行)或者columns(列)就可以得到行列数了

xowen 发表于 2012-3-13 10:26:04

回复 4# kevinch
谢谢大虾,明白了呃!!!!
页: [1]
查看完整版本: 【已解决】如何返回XLS中的拼合单元格拼合了多少个单元?