Sheets(2).Cells(i+1,2).Value=Sheets(1).Cells(i+1,39).Value例如,我要把表1第2行第39列的所有数据都调到表2的第...
Sheets(2).Cells(i + 1, 2).Value = Sheets(1).Cells(i + 1, 39).Value
例如,我要把表1第2行第39列的所有数据都调到表2的第2行第39列去!
但是表1的原始数据的值前面有空格,但实际不是空格,在VBA表里显示的是?,我试过直接在表上直接用替换,直接在表上复制那个空格,然后全替换为空,可结果,值都已经变了,身份证后面的位数会变成000,我用录制宏去试了下,结果VBA里出现的这个空格是?,然后我直接在VBA里尝试,把表1的所有?都替换为空,结果,表1被清空了,这是怎么回事?以前我在VBA替换表1的时间或者其他空格符号都没问题?难道就因为这个特殊符号有问题吗?
Sheets(1).Cells.Replace What:="?", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
上面代码一用,结果整张表1全被清空了,只要是?这个特殊符号就会,都没办法,有没大神帮个忙,解决一下这个问题!
可是这个空格我复制了放到VBA编辑器里,显示的是?
Sheets(1).Cells.Replace What:=" ", Replacement:="",
所有上面这段代码我如果直接使用空格是没有效果的,并不会替换为空值
解决方法:
1,将用于存放长数字格式文本的单元格或列(如Sheets(2)的第二列)先设置好其单元格的格式为文本格式2、
2、然后,将你原先的代码稍作修改:
Sheets(2).Cells(i + 1, 2)=Replace(Sheets(1).Cells(i + 1, 39)," " "")
已经试过了,还是没办法,如果是空格的就可以,实际上我表上的空格不是空格,我表上的数据只要一上ERP系统,身份证的前面就会显示个 ?440255。。。是只要显示出来的!而不是前面会多个空格!
1、是不是空格你都不知道,怎么解题?
2、如果是要替换?号,那么,因为?号是通配符,替换时必须取消其通配性,即在?号前加上^符……
3、如果真的不能确定那个是什么符号,而可以确定单元格的数值中,除它外全是数字的话,可以试着用截取数字的办法,只截取其中的数字。这个办法只适用于单元格中的数字与符号位置都是统一的。
4、如果不统一,可以对单元格的所有内容(含数字与字符)一个一个进行判断并提取了。
5、如果这些方法都不能解决你的问题,只能是因为我们没有明白你的意思了!