当前位置:编程学习 > VB >>

求大大帮忙解决一下小小的问题列获取前几位!


'手机号码
Range("I4:I10000").Copy
Worksheets(1).Range("I4:I10000").SpecialCells(xlCellTypeVisible).Copy Worksheets(2).Range("I4")

'联系电话
Range("I4:I10000").Copy
Worksheets(1).Range("I4:I10000").SpecialCells(xlCellTypeVisible).Copy Worksheets(2).Range("H4")

背景:现在软件导出的excel表,表1内的 I列 内有手机号码和座机号码,点击转换后会自动复制此列到表2,但是因为是拷贝全部可见的,现在我只想联系电话取表1内的I列 前11位,手机号码取表2的后12为,怎么去写?试过多方式都没成功 该回复于2013-10-30 09:06:31被管理员删除 听不懂啊,有心为你解答,但是完全看不出来要拷贝列的数据格式,能把数据列的格式给个例子吗? 没听懂你的数据格式,不过可以按照这样的方法建个宏,下面的取前11位的代码 
for i=4 to 10000
  '取前11位
  Worksheets(2).Range("I" & i).value=left(Worksheets(1).Range("I" & i).value,11)
next 

下面是取后12位的代码,替换到上边的位置就可以了
  '取后12位
   Worksheets(2).Range("I" & i).value=right(Worksheets(1).Range("I" & i).value,12)
楼主给的不是数据格式,是他的代码。 方法1:用for...next结构完成

方法2:用“分列”方法也可以完成

Sub Test()
    ''第一步:提取前11位字符
    Sheet1.Range("i4:i10000").TextToColumns Destination:=Sheet1.Range("k4"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 2), Array(8, 2)), TrailingMinusNumbers:=True
    ''第二步:将分列后的字符复制到sheet2(上一步好像无法直接做到)
    Sheet1.Range("k4:k10000").Copy Sheet2.Range("i4") ''复制前面11位
    Sheet1.Range("l4:k10000").Copy Sheet2.Range("j4") ''复制剩余部分
End Sub

楼主是哪个国家的?
手机号码“后12位”,难道手机号码总长度已经超过12位的了?

我们国家的手机号码才11位呢……
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,