Srikanth, у Reafidy есть точка. Даже я бы предпочел формулу. Однако, если вам все еще нужен код VBA, вот он.
ИСПОЛЬЗОВАНИЕ ФОРМУЛЫ
Введите это в ячейках F1 и G1 и просто перетащите его вниз до F1000 и G1000
= ЕСЛИ (Е1 = "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. знаю, почему? - Срикант Ядаке 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