想写一个EXCEL宏,满足一下功能

完成状态改为完成后,该列在工作活动清单中消失,自动添加到已完成sheet,谢谢

帮你写了个宏,执行时,完全满足你的要求。
第三次改了一下,还有什么问题,欢迎提出:
Sub Zh()
Dim S, i As Integer, K(), E As String, Sw As Integer, U As String
d = Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
w = Array("", "万", "亿")
R = Range("A1").Value
If InStr(R, ".") <> 0 Then
U = Right(R, Len(R) - InStr(R, "."))
Do While Len(U) > 2
U = CStr((Val(U) + 5) \ 10)
Loop
R = Int(R)
End If
If Not IsNumeric(R) Then Exit Sub
i = Len(Int(R))
i = i \ 4
ReDim K(i)
For i = UBound(K) To LBound(K) + 1 Step -1
K(i) = Right(R, 4)
E = T(K(i)) + w(Sw) + E
Sw = Sw + 1
R = Left(R, Len(R) - 4)
Next i
K(i) = R
If K(i) <> "" Then
E = T(K(i)) + w(Sw) + E
End If
E = E + "元"
If Len(U) = 2 Then
E = E + d(Val(Left(U, 1))) + "角" + d(Val(Right(U, 1))) + "分"
ElseIf Len(U) = 1 Then
E = E + d(Val(Left(U, 1))) + "角"
Else
E = E + "整"
End If
Range("A2").Value = E
End Sub
Function T(A) As String
d = Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
S = Array("", "拾", "百", "千")
n = Len(A)
For i = 1 To n
T = d(Val(Mid(A, (n - i + 1), 1))) + S(i - 1) + T
Next i
End Function追问

能写到excel中发我么

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-22
依次添加到 已完成表后面,不覆盖以前的数据?
C2 选择为 完成 ,执行代码
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$2" And [C2] = "完成" Then

X = Sheets("已完成工作").Range("A65536").End(xlUp).Row
Sheets("已完成工作").Select
Rows("3").Copy Sheets("已完成工作").Cells(X + 1, "A")
End If
End Sub追问

需要把该列 从原sheet中删除

追答

复制后,删除该行
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$2" And [C2] = "完成" Then

X = Sheets("已完成工作").Range("A65536").End(xlUp).Row
Sheets("已完成工作").Select
Rows("3").Cut Sheets("已完成工作").Cells(X + 1, "A")
End If
End Sub

相似回答