Function UC (x As String)
If x = "Not Yet Start" or _
x = "In-Progress" Then
UC = "N/a"
If x = "Complete" Then
UC= Format (Now, "dd-mm-yy hh:mm:ss")
Else
Cells(x).Copy
ActiveSheet.Cells(x).PasteSpecial
End If
End Function
我想创建一个函数,当我将“当前状态”设置为“尚未开始/进行中”时,“日期完成”列将显示为“不适用”,然后当我将“完成”设置为“完成日期”列时,日期将显示在“日期完成”列中。稍后当我想将当前状态更改为已发货时。我不希望 Date Complete 为空,因为当语句为 false 时,函数 IF_*THEN_*ELSE 会在其中进行操作,因此它会更改操作。所以,我想如果我复制“日期完成”中的日期,然后将特殊(仅值)粘贴到同一列(“日期完成”),那么日期将不会更改,那么该函数将被删除,因此它不会影响日期。
所以,现在的问题是,Vba编码有很多错误,有人可以帮忙吗?或者有什么更好的建议给我。如果我使用 Excel 公式 =today() 那么日期明天就会改变。这就是为什么我想使用 VBA 编码。
解决我的错误并确保该功能可以使用
将此代码放入工作表的代码模块中
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("D")) Is Nothing Then
If Target = "Not Yet Start" Or Target = "In-Progress" Then
Target.Offset(0, 2) = "N/A"
ElseIf Target = "Complete" Then
Target.Offset(0, 2).NumberFormat = "dd-mm-yy hh:mm:ss"
Target.Offset(0, 2) = Now
Else
Target.Offset(0, 2) = "Unknown Status!"
End If
End If
End Sub