Excel 在值更新后运行宏以更改单元格
我不知道,我正在尝试构建一个代码,在我更改单元格后为单元格值输入前缀,我的意思是我将选择一个单元格并输入“342”。例如,在我更新该值后,我希望私有子将该单元格值更改为“GO-342”,我已经尝试过了,但它不起作用Excel 在值更新后运行宏以更改单元格,excel,vba,worksheet-function,private-methods,Excel,Vba,Worksheet Function,Private Methods,我不知道,我正在尝试构建一个代码,在我更改单元格后为单元格值输入前缀,我的意思是我将选择一个单元格并输入“342”。例如,在我更新该值后,我希望私有子将该单元格值更改为“GO-342”,我已经尝试过了,但它不起作用 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$3" Then If Left(Range("D3"), 2) = "GO" Then Exit Sub Range("D3")
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" Then
If Left(Range("D3"), 2) = "GO" Then Exit Sub
Range("D3") = "GO-" & Range("D3")
End If
End Sub
整个代码:
Private Sub Worksheet_Change(ByVal Target As Range)
'Cabeçalho
Dim rng As Range
Set rng = Range("D3,D5,I3,O3,O5,O7,X3,X5")
If Intersect(Target, rng) Is Nothing Then Exit Sub
For Each R In rng
If R.Value = "" Then
Exit Sub
End If
Next R
Create
'Km
Dim rng1 As Range
Set rng1 = Range("X3,X5")
If Intersect(Target, rng1) Is Nothing Then Exit Sub
For Each R In rng1
If R.Value = "" Then
Exit Sub
End If
Next R
Km
'GO
If Target.Address = "$D$3" Then
If Left(Range("D3"), 2) = "GO" Then Exit Sub
Application.EnableEvents = False
Range("D3") = "GO-" & Range("D3")
Application.EnableEvents = True
End If
End Sub
“Cabeçalho”和“Km”可以工作,但“GO”不起作用下面是代码的一个小修改:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$3" Then
If Left(Range("D3"), 2) = "GO" Then Exit Sub
Application.EnableEvents = False
Range("D3") = "GO-" & Range("D3")
Application.EnableEvents = True
End If
End Sub
代码必须放置在工作表代码区域。
宏必须启用。您是否尝试过使用调试器单步执行?它在哪里不做你说它要做的事?对我来说绝对好。你把代码放在哪里了?我已经把它放在工作表上了,对我来说,它不起作用,我离开单元格,值不改变,我改变单元格,按enter键,只保留数字。它不会添加前缀直到不起作用,我会用完整的代码更新问题