Нужен простой универсальный макрос-скрипт vba, чтобы изменить значение ячейки на основе значения другой ячейки - PullRequest
1 голос
/ 01 февраля 2012

Нужен простой универсальный макрос-скрипт vba для изменения значения ячейки на основе значения другой ячейки.

У меня есть значения в диапазоне от e1: e1000.В любой из этих ячеек в диапазоне, если значение равно "x", то смежные 2 ячейки в соответствующих строках должны изменить значение на "y"

, например: если e1 = "x", то f1 = "y"and g1 =" y "

Аналогично и для других ячеек ...

1 Ответ

2 голосов
/ 02 февраля 2012

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...