【已解决】excel两单元格的内容分别是222和222-22,在au3里相等,怎么使它们不相等?
本帖最后由 la2ygoo 于 2018-4-24 10:38 编辑不改变xls内容的前提下,怎么让$a1=$b1的判断语句不成立?然后如果内容是数值222和文本222,我需要$a1=$b1,成立
不用StringLen,可以做到吗?(需要操作的xls有几万行,所以想效率高点)#include <Excel.au3>
#include <MsgBoxConstants.au3>
Local $xls,$oxls1,$oxls2,$s1,$s2,$a1,$b1
$xls = _Excel_Open()
$oxls1 = $xls.WorkBooks.Open("D:\gao\au3\test.xls")
$s1=$oxls1.Worksheets("Sheet1")
$a1=$s1.range("a1").value ;~ a1是222,b1是222-22
$b1=$s1.range("b1").value
If $a1=$b1 then MsgBox(1,"1","1") ;~成立。怎么使$a1=$b1不成立?
if 222="222-22" then MsgBox(1,"2","2") ;~成立
If "222"="222-22" then MsgBox(1,"3","3") ;~不成立 整个表读入数组,再比对判断多省事
Local $erp_su
$xls = ObjGet($phe&"cx.csv");1物编,2描述,5数量,19作业号,22订单号, 21上线时间 27条码号
ConsoleWrite($phe&"cx.csv")
If Not IsObj($xls) Then
MsgBox(0,"错误","ObjGet(\cx.csv不是一个对象.")
Else
EndIf
With $xls.activesheet
$erp_cx= .usedrange.value
$erp_cx= .parent.application.transpose($erp_cx )
.parent.close(False)
EndWith 回复 2# duxing
你的回帖好像和我的问题没关系。
其实我的问题主要就是au3判断数字和文本相不相等时,文本只会取前几位的数字,之后的“-”和字母之类的字符会忽略。
222和“222-22”、“222aaa”是相等的,和数组没关系。
而“222”和“222-22”、“222aaa”不相等 回复 3# la2ygoo
兩個 ==
IF $a==$b THEN 先判断单元格格式.$a1=$s1.range("a1").NumberFormatLocal,数字和文本这个格式是不同的,
第二.字符串比较格式如楼上所说==,而非= 回复 4# kk_lee69
感谢。
原来这么基础,看来我要多看一下帮助文件
页:
[1]