Gex*_*xas 1 excel vba excel-vba
我有标记列D细胞更换时间的功能.现在我想为worksheet_change事件添加另一个函数,如果在D列单元格中写入特定文本,它将相应地更改列E.
我遇到的问题是,E列每次都会发生变化,尽管条件不满足(其他文本写入D列单元格).有人能指出我正确的方向,我对VBA很新,所以也许我想念一些东西.
我的代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCellColumn As Integer
Dim xTimeColumn As Integer
Dim xPaymentColumn As Integer
Dim xRow, xCol As Integer
xCellColumn = 4
xTimeColumn = 23
xPaymentColumn = 5
'part for marking date, works as intended
On Error Resume Next
xRow = Target.Row
xCol = Target.Column
If Target.Text <> "" Then
If xCol = xCellColumn Then
Cells(xRow, xTimeColumn) = Now()
End If
End If
'part for changing column E according column D selection
'I would like this part to trigger only if text cell in column D changed _
to "Send request" or "Start evaluation", if any other text is written in column D, _
column E should remain intact
If Target.Text = "Send request" Or "Start evaluation" Then
If xCol = xCellColumn Then
Cells(xRow, xPaymentColumn) = "Yes"
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
改变你If的
If Target.Text = "Send request" Or Target.Text = "Start evaluation" Then
Run Code Online (Sandbox Code Playgroud)
您当前的if-Condition会抛出错误Type mismatch,但是您正在使用On Error Resume Next- message 消除所有错误.所以VBA按照你的要求做:忽略运行时错误并愉快地执行下一个语句 - 这是If-block中的语句.
一般建议:永远不要使用On Error Resume Next