Local $sFilepath = "d:\rm.xls"
Local $oExcel = ObjGet($sFilepath)
Local $aName
If @error = 1 Then
MsgBox(0, "错误!", "无法创建对象!")
Exit
ElseIf @error = 2 Then
MsgBox(0, "错误!", "文件不存在!")
Exit
EndIf
$o_Dic = ObjCreate("scripting.dictionary")
With $oExcel.activesheet
For $o_Rng In .range("a2", .cells(.rows.count, 1).end(3))
If $o_Dic.exists($o_Rng.value) Then
$o_Dic($o_Rng.value) = $o_Dic($o_Rng.value) + 1
Else
$o_Dic($o_Rng.value)=1
EndIf
Next
EndWith
$oExcel.close(false)
ReDim $aName[$o_Dic.count]
$a_Arr=$o_Dic.keys
For $i=0 To UBound($a_Arr)-1
$aName[$i] = $a_Arr[$i]
$aName[$i] = $o_Dic($a_Arr[$i])
Next
_ArrayDisplay($aName)这个可以了 如果我要跟多个条件怎么改? 学习心态来学习下 前辈的经验 学习心态来学习下 前辈的经验 {:face (327):}
想問高手, 以您這個為例, 我如果左邊的excel表要變成右邊這樣, 該怎麼做呢? 就是...
甲: a, b, c, d
乙: e, f
丙: g, h
丁: j
要變成右邊的歸類好的樣子, 是否可以辦到呢? 謝謝謝謝 没有看明白啊 簡單的說, 就是讀出
甲有 a, b, c, d
乙有 e, f
丙有 g, h
丁有 j 本帖最后由 kevinch 于 2014-8-12 17:07 编辑
回复 22# ipmitool
可以处理,方法有点另类,你用下面代码试下,源文档命名为test.xls放到程序目录下$oexcel=ObjGet(@ScriptDir&"\test.xls")
$arr=$oexcel.activesheet.usedrange.value
$oexcel.close(False)
If IsArray($arr) Then
$dic=ObjCreate("scripting.dictionary")
$dic2=ObjCreate("scripting.dictionary")
For $n=0 To UBound($arr,2)-1
If $dic.exists($arr[$n]) Then
$dic($arr[$n])=$dic($arr[$n])&"<td>"&$arr[$n]&"</td>"
$dic2($arr[$n])=$dic2($arr[$n])+1
Else
$dic($arr[$n])="<td>"&$arr[$n]&"</td>"
$dic2($arr[$n])=1
EndIf
Next
$str="<table><tr><td>"&$dic.count&"</td><td>"&UBound($arr,2)&"</td></tr>"
$arr=$dic.keys
For $n=0 To UBound($arr)-1
$str&="<tr><td>"&$arr[$n]&"</td><td>"&$dic2($arr[$n])&"</td>"&StringRegExpReplace($dic($arr[$n]),"(?is)(<\/td\>[\s\S]*?\<\/td\>[\s\S]*?\<\/td\>)","$1</tr><tr><td></td><td></td>")&"</tr>"
Next
$str&="</table>"
$oexcel=ObjCreate("excel.application")
$oexcel.visible=True
$wb=$oexcel.workbooks.add
With $wb.activesheet
ClipPut($str)
.paste(.range("a1"))
EndWith
EndIf 天啊, 太屌了吧, 好強喔~~謝謝你! 不過...我真的看不懂高手的思維...能不能幫忙加註解啊?~呵呵... 学习了,感谢分享,收藏下 读取EXCEL中的人名,统计重复人名的数量,记录在二维数组里【已解决】 哈哈,过来看看
页:
1
[2]