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
проводившая UP
спасибо за ответ. Я пробовал использовать тот, у кого нет формулы, Но даже это не удается. Я поместил код внутри функции 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
Почему бы просто не использовать формулу? – Reafidy
попробует. .thanks – Sriyad