请问如何读取excel里合并单元格的值
刚刚接触AutoIt,正在学习使用excel函数,但没有找到读取合并单元格的值的函数。只能读取第一个单元格的值,其他被合并的单元格值均为空,如何解决,求高手帮助!求!跪求!!! 给出你的代码看下,合并单元格里的其他单元格值是空的是正常,只有左上角的单元格是有值的。是这样的,我有一个excel的文件清单,需要读出前三列来组成文件路径,找到这个文件后,读取文件的版本和最后修改时间,跟excel表格里的文件和最后时间做比较。excel表的形式如上图。代码如下:Func _VerifyFile($installFilePath, $listFilePath)
$oExcel = _ExcelBookOpen($listFilePath)
If @error = 2 Then
MsgBox(0, "Error!", "文件清单不存在 - 干什么吃的你!!")
Exit
EndIf
$aArray = _ExcelReadSheetToArray($oExcel)
$versionColu = 6
$modifyTimeColu = 7
For $row = 2 To UBound($aArray)-1
$verifyFilePath = $installFilePath
For $col = 1 To 3
$verifyFilePath = $verifyFilePath & '\' & $aArray[$row][$col]
If StringInStr(FileGetAttrib($verifyFilePath), "D") Then
ContinueLoop
Else
_CompareVersion($aArray[$row][$versionColu], $verifyFilePath)
;_CompareModifyTime($aArray[$j][$versionColu], FileGetTime($verifyFilePath))
EndIf
Next
Next
EndFunc通过这种方式读取的路径,因为单元格内容为空,所以路径总是不正确的,请问怎么解决?谢谢…… 有两种方式处理:
1. 临时对excel进行处理,将合并单元格解散,并且每个合并区域内的单元格等于左上角单元格内容,然后再读入数组进行处理,对excel文件使用关闭但不保存
2. 用变量记录当前列当前行的内容,如果当前数组项是空白则以变量记录值为准,这种不需要对原表格进行临时操作
看楼主喜欢哪种啦,确定后可以帮你弄一下。 第二种方式我也考虑过,但是kevinch 请看第三列,这些本来就是空值,而不是因为合并导致的空值,如果用第二种方法,就没法处理了。如果用第一种方法,该怎么做啊? Func _VerifyFile($installFilePath, $listFilePath)
$oExcel = _ExcelBookOpen($listFilePath)
If @error = 2 Then
MsgBox(0, "Error!", "文件清单不存在 - 干什么吃的你!!")
Exit
EndIf
With $oExcel
For $Rng In .activesheet.usedrange
If $rng.mergecells=True Then
$rng.select
$rng.parent.parent.parent.selection.unmerge
$rng.parent.parent.parent.selection.cells.value=$rng.value
EndIf
Next
EndWith
$aArray = _ExcelReadSheetToArray($oExcel)
$versionColu = 6
$modifyTimeColu = 7
For $row = 2 To UBound($aArray)-1
$verifyFilePath = $installFilePath
For $col = 1 To 3
$verifyFilePath = $verifyFilePath & '\' & $aArray[$row][$col]
If StringInStr(FileGetAttrib($verifyFilePath), "D") Then
ContinueLoop
Else
_CompareVersion($aArray[$row][$versionColu], $verifyFilePath)
;_CompareModifyTime($aArray[$j][$versionColu], FileGetTime($verifyFilePath))
EndIf
Next
Next
EndFunc没有你的主程序,我这里没办法测试,你测试一下看看。 谢谢哈,完全可以!好厉害!这个最关键的问题解决了,功能也差不多完成了,能及时的回复太感谢了!!!{:face (468):} 学习了,强人啊 {:face (356):} 貌似很厉害的样子,记号一下我很快也会用到 我也在弄,现在也可以了。
页:
[1]