Vba 工作表\u更改事件触发器,尽管条件未满足
我有一个标记D列单元格更改时间的函数。现在,我想在工作表_change事件中添加另一个函数,如果在D列单元格中写入特定文本,该函数将相应地更改E列 我遇到的问题是,E列每次都会更改,尽管条件不满足(其他文本写入D列单元格)。有人能给我指出正确的方向吗?我对VBA很陌生,所以我可能错过了什么 我的代码:Vba 工作表\u更改事件触发器,尽管条件未满足,vba,excel,Vba,Excel,我有一个标记D列单元格更改时间的函数。现在,我想在工作表_change事件中添加另一个函数,如果在D列单元格中写入特定文本,该函数将相应地更改E列 我遇到的问题是,E列每次都会更改,尽管条件不满足(其他文本写入D列单元格)。有人能给我指出正确的方向吗?我对VBA很陌生,所以我可能错过了什么 我的代码: Private Sub Worksheet_Change(ByVal Target As Range) Dim xCellColumn As Integer Dim xTimeColumn As
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
Private子工作表\u更改(ByVal目标作为范围)
Dim Xcell列为整数
Dim xTimeColumn作为整数
Dim xPaymentColumn为整数
Dim xRow,xCol为整数
xcell列=4
xTimeColumn=23
xPaymentColumn=5
'标记日期的零件,按预期工作
出错时继续下一步
xRow=Target.Row
xCol=Target.Column
如果是Target.Text“”,则
如果xCol=xcell列,则
单元格(xRow,xTimeColumn)=现在()
如果结束
如果结束
'根据D列选择更改E列的部分
'我希望此部分仅在D列中的文本单元格发生更改时触发_
“发送请求”或“开始评估”,如果D列中有任何其他文本_
E列应保持完整
如果Target.Text=“发送请求”或“开始评估”,则
如果xCol=xcell列,则
单元格(xRow,xPaymentColumn)=“是”
如果结束
如果结束
端接头
如果将更改为
If Target.Text = "Send request" Or Target.Text = "Start evaluation" Then
您当前的if条件引发了一个错误类型不匹配
,但您正在通过错误恢复下一条消息吃掉所有错误。因此VBA会按照您的要求执行:忽略运行时错误并愉快地执行下一条语句,即If块中的语句
一般建议:切勿在出现错误时使用下一步继续
将如果
更改为
If Target.Text = "Send request" Or Target.Text = "Start evaluation" Then
您当前的if条件引发了一个错误类型不匹配
,但您正在通过错误恢复下一条消息吃掉所有错误。因此VBA会按照您的要求执行:忽略运行时错误并愉快地执行下一条语句,即If块中的语句
一般建议:切勿在下一步错误恢复时使用
“即使条件不满足,E列仍会更改”-您能更具体一点吗?对于初学者,请尝试在“下一步继续”错误时注释出。在我看来还可以,不过您应该在更改代码中的单元格之前关闭enableevents。列E中的文本单元格将更改为“是”,尽管事实上,列D中的文本已更改为“发送请求”或“开始评估”以外的内容。我只想更改E列,然后将这两个短语中的一个输入D列单元格。我将更新我的问题,使之更清楚。“尽管条件不满足,E列仍会更改”-你能更具体一点吗?对于初学者,请尝试在“下一步继续”错误时注释出。在我看来还可以,不过您应该在更改代码中的单元格之前关闭enableevents。列E中的文本单元格将更改为“是”,尽管事实上,列D中的文本已更改为“发送请求”或“开始评估”以外的内容。我只想更改E列,然后将这两个短语中的一个输入D列单元格。我会更新我的问题使之更清楚……除非你绝对确定你知道自己在做什么?@Inarion:对。我经常使用它作为缺少try…catch
块的变通方法。但这并不是一个初学者的错误,显示警报
和没有显式的选项
可能需要被锁定在某种“专家用户模式”的后面-它可以防止这么多问题。。。xD…除非你绝对确定自己知道自己在做什么?@Inarion:对。我经常使用它作为缺少try…catch
块的变通方法。但这并不是一个初学者的错误,显示警报
和没有显式的选项
可能需要被锁定在某种“专家用户模式”的后面-它可以防止这么多问题。。。除息的