Есть две колонки со значениями: В В В В В A В С В С В В В В В В В А В В В В В В Подскажите, как сделать что бы при совпадении значений в ячейках ничего не происходило, а при несовпадении происходила замена значения первой ячейки на значение взятое из второй? Но одно условие, если во второй ячейке отсутствует значение, то значение первой не меняется. Буду рад любой помощи...
Есть две колонки со значениями: В В В В В A В С В С В В В В В В В А В В В В В В Подскажите, как сделать что бы при совпадении значений в ячейках ничего не происходило, а при несовпадении происходила замена значения первой ячейки на значение взятое из второй? Но одно условие, если во второй ячейке отсутствует значение, то значение первой не меняется. Буду рад любой помощи...Dizeloid
Dizeloid, еще вариант макроса,кнопки test и повтор(все буквы английские),добавлю,что автоматически меняет мой файл на другой,проверьте,чтобы у Вас была одинаковая раскладка букв: английская или(здесь исключающие или) русская в столбцах.
[vba]
Код
Sub test() Dim z, i&: z = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row).Value For i = 1 To UBound(z) If Not IsEmpty(z(i, 2)) And z(i, 1) <> z(i, 2) Then z(i, 1) = z(i, 2) Next Range("A1").Resize(UBound(z), UBound(z, 2)) = z End Sub
[/vba]
Dizeloid, еще вариант макроса,кнопки test и повтор(все буквы английские),добавлю,что автоматически меняет мой файл на другой,проверьте,чтобы у Вас была одинаковая раскладка букв: английская или(здесь исключающие или) русская в столбцах.
[vba]
Код
Sub test() Dim z, i&: z = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row).Value For i = 1 To UBound(z) If Not IsEmpty(z(i, 2)) And z(i, 1) <> z(i, 2) Then z(i, 1) = z(i, 2) Next Range("A1").Resize(UBound(z), UBound(z, 2)) = z End Sub
Задачу, как Вы её описали, я бы предложил решить макросом. Например, в файле ниже разрешите исполнение макросов и нажмите на кнопку для проверки результата.
Код вложенной программы:
[vba]
Код
Sub Special_Check() Dim xRow&, X, i& xRow = ActiveSheet.UsedRange.Rows.Count X = Range("A1:B" & xRow) For i = 1 To xRow If (X(i, 2) <> "") And (X(i, 1) <> X(i, 2)) Then X(i, 1) = X(i, 2) Next i Range("A1:B" & xRow) = X End Sub
[/vba]
Dizeloid, здравствуйте.
Задачу, как Вы её описали, я бы предложил решить макросом. Например, в файле ниже разрешите исполнение макросов и нажмите на кнопку для проверки результата.
Код вложенной программы:
[vba]
Код
Sub Special_Check() Dim xRow&, X, i& xRow = ActiveSheet.UsedRange.Rows.Count X = Range("A1:B" & xRow) For i = 1 To xRow If (X(i, 2) <> "") And (X(i, 1) <> X(i, 2)) Then X(i, 1) = X(i, 2) Next i Range("A1:B" & xRow) = X End Sub
Dizeloid, добрый вечер,вариант для сообщения 8 кнопки test1 и убрать_цвет
[vba]
Код
Sub test1() Dim z, i&: z = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row).Value For i = 1 To UBound(z) If Not IsEmpty(z(i, 2)) And z(i, 1) <> z(i, 2) Then Range("A" & i & ":B" & i).Font.Color = -16776961 Next End Sub
[/vba]
Dizeloid, добрый вечер,вариант для сообщения 8 кнопки test1 и убрать_цвет
[vba]
Код
Sub test1() Dim z, i&: z = Range("A1:B" & Range("A" & Rows.Count).End(xlUp).Row).Value For i = 1 To UBound(z) If Not IsEmpty(z(i, 2)) And z(i, 1) <> z(i, 2) Then Range("A" & i & ":B" & i).Font.Color = -16776961 Next End Sub