需要简单的通用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