如何使用VBA将Excel单元格中输入的82.8.12替换为19820812这个种类的数据?谢谢,马上给分
我们的文印人员在输入日期时候输入错了,比如说: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




