需要简单的通用vba宏脚本来根据其他单元格的值更改单元格的值

时间:2012-02-01 12:11:28

标签: excel vba excel-vba

需要简单的通用vba宏脚本来根据其他单元格的值更改单元格的值。

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

例如:如果e1 =“x”则f1 =“y”且g1 =“y”

同样对于其他细胞......

1 个答案:

答案 0 :(得分:2)

Srikanth,Reafidy有一个观点。即使我更喜欢配方。但是,如果您仍然需要VBA代码,那么它就是。

使用公式

在单元格F1和G1中键入它,然后将其向下拖动直到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函数中。使用'With Sheets(“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