急需有关如何在 VBA 上对此进行编码的帮助

badly need help on how to code this on VBA

提问人:JAP3131 提问时间:8/31/2023 最后编辑:IkeJAP3131 更新时间:8/31/2023 访问量:36

问:

急需有关如何在 VBA 上对此进行编码的帮助......excel 列 C:借用日期,col E:状态,col F:归还日期。我需要自动填写状态(Out或In)。如果 col C 已填充但 col F 为空,则输出。然后,如果列 F 被填充,它将自动更新为“In”。

我尝试使用 IsEmpty,但当借用的日期值已经填满时,似乎无法链接它。

Excel VBA 为空

评论

1赞 Ike 8/31/2023
你为什么不用公式来做到这一点呢?

答:

0赞 Ike 8/31/2023 #1

您可以使用以下公式:

= IF(C2<>"",IF(F2="","Out","In"),"")

如果借用日期 (C) 不为空,则公式检查返回的日期 (F):如果为空,则为“out”,否则为“in”。

VBA 解决方案可能如下所示:

Public Function getStatus(dateBorrowed As Date, dateReturned As Date) As String
If dateBorrowed > 0 Then
    If dateReturned > 0 Then
        getStatus = "In"
    Else
        getStatus = "Out"
    End If
End If
End Function

你会这样称呼它getStatus(activesheet.range("C2"), activesheet.range("F2"))

评论

0赞 JAP3131 9/5/2023
我试过这些。但没有任何效果。'自动更新 D 列状态的状态 'Private Sub HHRMSdata_Change() 'If dateentry.值 > 1 和 dateentry2。value = null 然后 'range(“d”)。Value = “Out” 'ElseIf dateentry.值 > 1 和 dateentry2。值> 1,然后 'range(“d”)。value = “in” 'else 'range(“d”)。Value = Null 'End If '结束子
0赞 JAP3131 9/5/2023
'公共函数 getStatus(dateentry As Date, dateentry2 As date) As String 'getStatus(HHRMSdata.Range(“C”), HHRMSdata.Range(“F”)) = “D” 'If dateentry > 0 Then ' If dateentry2 > 0 Then ' getStatus = “out” ' else ' getStatus = “in” ' end If 'End If 'End 函数
0赞 JAP3131 9/5/2023
Private Sub HHRMSdata_Change() getStatus(HHRMSdata.Range(“C”), HHRMSdata.Range(“F”)) = “D” If IsEmpty(Range(“C”).value) = false 则 If IsEmpty(Range(“F”)。Value) = False Then getStatus = "Out" Else getStatus = "In" End If End If End Sub