需要简单的通用vba宏脚本根据其他单元格的值更改单元格的值
需要简单的通用vba宏脚本来根据其他单元格的值更改单元格的值 我的值在e1:e1000的范围内。在该范围内的任何单元格中,如果值为“x”,则其相应行中相邻的2个单元格应将值更改为“y” 例如:如果e1=“x”,那么f1=“y”和g1=“y”需要简单的通用vba宏脚本根据其他单元格的值更改单元格的值,vba,excel,Vba,Excel,需要简单的通用vba宏脚本来根据其他单元格的值更改单元格的值 我的值在e1:e1000的范围内。在该范围内的任何单元格中,如果值为“x”,则其相应行中相邻的2个单元格应将值更改为“y” 例如:如果e1=“x”,那么f1=“y”和g1=“y” 同样地,对于其他细胞也一样…Srikanth,Reafidy有一个观点。甚至我也更喜欢配方奶粉。但是,如果您仍然需要VBA代码,它就是 使用公式 在单元格F1和G1中键入此项,然后将其向下拖动到F1000和G1000 =如果(E1=“X”,“Y”,“Y”)
同样地,对于其他细胞也一样…Srikanth,Reafidy有一个观点。甚至我也更喜欢配方奶粉。但是,如果您仍然需要VBA代码,它就是 使用公式 在单元格F1和G1中键入此项,然后将其向下拖动到F1000和G1000 =如果(E1=“X”,“Y”,“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
更多后续行动
Sheets("Sheet1").Range("F1:F1000").Formula = "=If(D1=""Ready"",""Ready"","""")"
谢谢你的回复。我试着用一个没有公式的,但即使这样也失败了。我把代码放在了工作表更改函数中。即使工作表的更改在工作表1中,其“with Sheets”(“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
我试过上面的代码,它不起作用。无法使用直接公式,因为单元格与列表值绑定。我使用的代码如下所示:Sheets(“Sheet1”).Range(“F1:F1000”).Formula=“=If(Range”(“D1:D1000”)=“Ready”(“就绪”)”)“当任何行的D列中的值更改为Ready时,F列中同一行中的值也应更改为Ready。@Srikanth Yadake:我已更新了上面的代码。:)请参阅“跟进”,谢谢您的回复。我试着用一个没有公式的,但即使这样也失败了。我把代码放在了工作表更改函数中。即使工作表的更改在工作表1中,其“with Sheets”(“Sheet1”)行也会出现抛出错误。知道为什么吗?@Srikanth Yadake:您不能在中使用该代码,因为它在工作表更改事件中。请稍等,更新代码