需要简单的通用vbamacros脚本来改变基于其他单元格的值的单元格的值

需要简单的通用vbamacros脚本来改变基于其他单元格的值的单元格的值。

我有在e1:e1000范围内的值。 如果值为“x”,则在该范围内的任何单元格中,则其相邻行中的相邻2个单元格应该将该值更改为“y”

例如:如果e1 =“x”,那么f1 =“y”和g1 =“y”

对于其他单元格也是如此

Srikanth,Reafidy有一个观点。 即使我更喜欢一个公式。 但是,如果你仍然需要一个VBA代码在这里。

使用公式

在单元格F1和G1中input它,直接拖放到F1000和G1000

= IF(E1 = “X”, “Y”, “”)

使用代码

Sub Sample() Sheets("Sheet1").Range("F1:F1000").Formula = "=If(E1=""X"",""Y"","""")" Sheets("Sheet1").Range("G1:G1000").Formula = "=If(E1=""X"",""Y"","""")" End Sub 

跟进

 Sheets("Sheet1").Range("F1:F1000").Formula = "=If(D1=""Ready"",""Ready"","""")" 

或者如果你不想完全使用这些公式,那就使用它

 Sub Sample() For i = 1 To 1000 With Sheets("Sheet1") If .Range("D" & i).Value = "Ready" Then _ .Range("F" & i).Value = "Ready" Else .Range("F" & i).Value = "" End With Next i End Sub 

更多后续

感谢您的回复。 我试着用没有这个公式的那个,但是即使这样也是失败的。 我已经将代码放入Worksheet_Change函数中。 它与“使用图纸(”Sheet1“)行,即使Worksheet_Change在Sheet1中的抛出错误。 知道为什么? – Srikanth Yadake 11分钟前

尝试这个

 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Whoa If Not Intersect(Target, Range("D1:D1000")) Is Nothing Then Application.EnableEvents = False If Target.Value = "Ready" Then _ Target.Offset(, 2).Value = "Ready" Else Target.Offset(, 2).Value = "" End If LetsContinue: Application.EnableEvents = True Exit Sub Whoa: MsgBox Err.Description Resume LetsContinue End Sub