在EXCEL中,利用VBA实现根据一列数据自动成另一列数据(用按扭一次实现,有相应条件)
在EXCEL中,根据工作表第一列数据的行数(不包括第一行,因为第一行是标题,不能动),从第二行开始自动生成第二列对应行数的固定数据或文本,也同时从第二行开始自动生成第三列...
在EXCEL中,根据工作表第一列数据的行数(不包括第一行,因为第一行是标题,不能动),从第二行开始自动生成第二列对应行数的固定数据或文本,也同时从第二行开始自动生成第三列对应行数的流水号,如00001.......00003.....
Private Sub Worksheet_Change(ByVal my As Range)
On Error Resume Next
If my.Column = 1 Then
i = 0
For Each my In Range([a2], [a65536].End(xlUp))
i = i + 1
If my <> "" And my(1, 46) <> Range("at1") Then my(1, 46) = 21
If my <> "" And my(1, 47) <> Range("au1") Then my(1, 47) = 0
If my <> "" And my(1, 48) <> Range("av1") Then my(1, 48) = 0
If my <> "" And my(1, 52) <> Range("az1") Then my(1, 52) = Format(Right(i, 11), "00000000000")
If my <> "" And my(1, 51) <> Range("ay1") Then my(1, 51) = Format(Right(i + 2, 11), "00000000000")
If my <> "" And my(1, 53) <> Range("ba1") Then my(1, 53) = "系统管理员"
If my <> "" And my(1, 54) <> Range("bb1") Then my(1, 54) = 1
If my <> "" And my(1, 55) <> Range("bc1") Then my(1, 55) = 1
If my <> "" And my(1, 56) <> Range("bd1") Then my(1, 56) = 0
If my <> "" And my(1, 57) <> Range("be1") Then my(1, 57) = 1
Next
End If
End Sub
我已经可以实现了,就是上面的代码,能否帮我把上面的代码用一个按扭实现 展开
Private Sub Worksheet_Change(ByVal my As Range)
On Error Resume Next
If my.Column = 1 Then
i = 0
For Each my In Range([a2], [a65536].End(xlUp))
i = i + 1
If my <> "" And my(1, 46) <> Range("at1") Then my(1, 46) = 21
If my <> "" And my(1, 47) <> Range("au1") Then my(1, 47) = 0
If my <> "" And my(1, 48) <> Range("av1") Then my(1, 48) = 0
If my <> "" And my(1, 52) <> Range("az1") Then my(1, 52) = Format(Right(i, 11), "00000000000")
If my <> "" And my(1, 51) <> Range("ay1") Then my(1, 51) = Format(Right(i + 2, 11), "00000000000")
If my <> "" And my(1, 53) <> Range("ba1") Then my(1, 53) = "系统管理员"
If my <> "" And my(1, 54) <> Range("bb1") Then my(1, 54) = 1
If my <> "" And my(1, 55) <> Range("bc1") Then my(1, 55) = 1
If my <> "" And my(1, 56) <> Range("bd1") Then my(1, 56) = 0
If my <> "" And my(1, 57) <> Range("be1") Then my(1, 57) = 1
Next
End If
End Sub
我已经可以实现了,就是上面的代码,能否帮我把上面的代码用一个按扭实现 展开
3个回答
展开全部
在第三列中输入:
=B2 & ROW(A1)
然后往下拉就行了
=B2 & ROW(A1)
然后往下拉就行了
更多追问追答
追问
用VBA实现,用按扭实现一次生成
追答
Dim i, irow As Integer
irow = Sheet1.UsedRange.Rows.Count
for i=2 to irow
cells(i,"c").value=cells(i,"b").value & i
next i
放到按钮的click事件里面,你试试看吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B2输入 =if(A2<>"",X,""),X要改为你固定数据或文本
C2输入 =if(A2<>"","0000" & Row(),"")
C2输入 =if(A2<>"","0000" & Row(),"")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有个问题,生成的第二列的内容是什么?和第一列完全相同的还是怎么样?你必须得举个具体的例子才能帮你解决。
更多追问追答
追问
不相同,是我需要的固定的数字或文本(我可以人为修改)
追答
那第二列总要有一点规律的吧?或者是第二列全部都一样的文本或者数字,或者是个序列什么的,任意的文本或数字没法做的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询