在使用EXCEL中进行单元格查询时,出现一个问题。
首先,我要查找的数据项是一个六位数,邮政编码格式的号码,001001是6位数中最小的数。即数据前2位为0。我先从textBox中取该字符,并转为int格式(num),然后用EXCEL里的
m_objRangetmp=m_objSheet.UsedRange.Find(num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value )对其进行查询。后来发现,当号码前2位为0的时候,会查找到与后4位数匹配的某一单元格,如,我查找001001,它会找到410011这样的数据。因此发现由于num已经转为整数,会去除2个0,因此查找时会找到我不想要的结果。希望有人告诉我在find里面怎么样设置才能检索正确?谢谢!
另外,我试图加入if语句发现了一个奇怪的现象,我加入条件,即
if(num<1000)
{
m_objRangetmp=m_objSheet.UsedRange.Find("00"+num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value );
}
else
{
m_objRangetmp=m_objSheet.UsedRange.Find(num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value )
}
查找001001,可以得到我想要的结果。但是有个疑问,刚开始我的条件写成10000,即
if(num<10000)
m_objRangetmp=m_objSheet.UsedRange.Find("00"+num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value );
else
{
m_objRangetmp=m_objSheet.UsedRange.Find(num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value )
}查找001001,却会是找不到。这到底是为什么呢?
首先,我要查找的数据项是一个六位数,邮政编码格式的号码,001001是6位数中最小的数。即数据前2位为0。我先从textBox中取该字符,并转为int格式(num),然后用EXCEL里的
m_objRangetmp=m_objSheet.UsedRange.Find(num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value )对其进行查询。后来发现,当号码前2位为0的时候,会查找到与后4位数匹配的某一单元格,如,我查找001001,它会找到410011这样的数据。因此发现由于num已经转为整数,会去除2个0,因此查找时会找到我不想要的结果。希望有人告诉我在find里面怎么样设置才能检索正确?谢谢!
另外,我试图加入if语句发现了一个奇怪的现象,我加入条件,即
if(num<1000)
{
m_objRangetmp=m_objSheet.UsedRange.Find("00"+num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value );
}
else
{
m_objRangetmp=m_objSheet.UsedRange.Find(num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value )
}
查找001001,可以得到我想要的结果。但是有个疑问,刚开始我的条件写成10000,即
if(num<10000)
m_objRangetmp=m_objSheet.UsedRange.Find("00"+num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value );
else
{
m_objRangetmp=m_objSheet.UsedRange.Find(num,Missing.Value ,Missing.Value,Missing.Value,Missing.Value ,Excel.XlSearchDirection.xlNext ,Missing.Value ,Missing.Value ,Missing.Value )
}查找001001,却会是找不到。这到底是为什么呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货