CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  Office开发/ VBA

如何使用VBA将Excel单元格中输入的82.8.12替换为19820812这个种类的数据?谢谢,马上给分

楼主ervinlj(阳光使者)2006-03-02 12:16:12 在 其他开发语言 / Office开发/ VBA 提问

我们的文印人员在输入日期时候输入错了,比如说:1982年08月12日,她输入的是:82.8.12   ,现在客户要求要19820812这种类型的数据  
  说具体一点吧:比如说:82.8.12       83.9.7     82.12.11    
  现在要变为:19820812   19830907   19821211    
  我想写一段VBA程序实现这样的转换,请问各位高人该如何写?谢谢拉,给分的快!!! 问题点数:20、回复次数:4Top

1 楼Arqui(我要吃饭)回复于 2006-03-02 13:53:10 得分 10

step1:open   your   excel  
  step2:add   a   button  
  step3:in   edit   mode   double   click   your   new   button  
  step4:in   active   sheet   add   these   code  
  假设你的数据都在B列  
  从[B2]开始  
  Private   Sub   CommandButton1_Click()  
  Dim   myNum,   myLen,   FirstNum,   MidNum,   LastNum   As   String  
  Dim   x,   i,   lastrow   As   Integer  
  Dim   pos   As   Integer  
  Dim   dot(0   To   1)   As   Integer  
  lastrow   =   Range("B65536").End(xlUp).Row  
  x   =   0  
  For   i   =   2   To   lastrow  
          myNum   =   Cells(i,   2)  
          myLen   =   Len(myNum)  
          For   pos   =   1   To   myLen  
                  If   Mid(myNum,   pos,   1)   =   "."   Then  
                          dot(x)   =   pos  
                          x   =   x   +   1  
                  End   If  
          Next   pos  
           
          FirstNum   =   Mid(myNum,   1,   2)  
          MidNum   =   Mid(myNum,   4,   dot(1)   -   dot(0)   -   1)  
          LastNum   =   Mid(myNum,   dot(1)   +   1,   myLen   -   dot(1))  
           
  '         ReDim   Preserve   dot(1)  
          FirstNum   =   "19"   &   FirstNum  
          If   Len(MidNum)   =   1   Then  
                  MidNum   =   "0"   &   MidNum  
          End   If  
          If   Len(LastNum)   =   1   Then  
                  LastNum   =   "0"   &   LastNum  
          End   If  
          myNum   =   FirstNum   &   MidNum   &   LastNum  
          Cells(i,   2)   =   myNum  
          x   =   0  
  Next   i  
  End   Sub  
  Top

2 楼Arqui(我要吃饭)回复于 2006-03-02 13:54:36 得分 0

把多余那句删掉  
  '         ReDim   Preserve   dot(1)Top

3 楼ervinlj(阳光使者)回复于 2006-03-02 15:02:10 得分 0

谢谢哈Top

4 楼vansoft(Vansoft Workroom)回复于 2006-03-03 09:44:37 得分 10

假如A1單元格內容為“80.3.8”  
  在B1單元格輸入以下公式:  
  =19   &   LEFT(A1,FIND(".",A1,1)-1)   &   RIGHT("00"   &   MID(A1,FIND(".",A1,1)+1,FIND(".",A1,FIND(".",A1,1)+1)-FIND(".",A1,1)-1),2)   &   RIGHT("00"   &   MID(A1,FIND(".",A1,FIND(".",A1,1)+1)+1,2),2)  
   
  剩下的事就是拖放填充表填充一下即可。  
  代碼測試通過。  
  MSN:Van_flf@Hotmail.comTop

相关问题

  • excel中合并单元格用vba怎么实现
  • EXCEL VBA中如何插入复制单元格
  • EXcel单元格属性
  • 如何用Excel的VBA判断单元格有没有批注,急
  • 利用VBA在Excel 2003中怎样实现对列和单元格的控制?
  • VBA 4 EXCEL:给定一单元格(ROW,COL),如何知道它是被合并的单元格?如果是,那么内部有那些小格?
  • vb,excel,设置单元格格式
  • Excel中单元格引用问题
  • Excel问题,关于单元格尺寸
  • excel单元格格式问题

关键词

  • 数据
  • mynum
  • mylen
  • 输入
  • dot
  • mid
  • pos

得分解答快速导航

  • 帖主:ervinlj
  • Arqui
  • vansoft

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo