Страницы: 1
RSS
Заменить значение, в зависимости от соседней ячейки
 
Добрый день, не могли бы подсказать по следующему вопросу.

Есть 2 следующих столбца:

--------|---
42.19   N
24.31   S
36.69   N
22.45   W
-------------

Если во втором столбца есть буква W или S, то в первом столбце к знаечнию должен добавлять знак минус ("-"  ;)  . Т.е. должно получиться как-то так:

--------|---
42.19   N
-24.31  S
36.69   N
-22.45  W
-------------
 
Мне под это дело нужен как понимаю какой-то макрос т.к. задача, чтобы это запускалось автоматом (по нажатию на кнопку для разных файлов).
 
Числа вводятся вручную?
 
Или буквы :)
Я сам - дурнее всякого примера! ...
 
Зануда. Но замечание верное))
 
Я еще и в другом зануда. Был бы файл с реальным расположением данных - был бы предметный разговор. А так...
Я сам - дурнее всякого примера! ...
 
Согласен - сделаешь пример, а потом начинается: а у меня данные не в том столбце, при ручном вводе работает, а у меня там формулы, и т.п.
 
Числа не водятся вручную. Числа уже будут на листе. Задача просто макросос стартовать который к ним минус будет добавлять в соответствие с условием.
 
У Вас в ячейках не числа, а текст.
 
А это сильно меняет задачу?
 
как минимум, это говорит о вашем непонимании.
а так... кто ж вас знает - что вам нужно.

макрос может быть примерно такой:
Код
Sub t()
 Dim i&, a()
 a = [a1].CurrentRegion.Value
 For i = 1 To UBound(a)
 If a(i, 2) = "W" Or a(i, 2) = "S" Then
 If Left(a(i, 1), 1) <> "-" Then a(i, 1) = "-" & a(i, 1)
 End If
 Next
 [a1].CurrentRegion.Value = a
End Sub

но работать он будет довольно забавно - текстовые строки превращать в числа и наоборот.  :)
Изменено: ikki - 20.10.2013 15:02:10
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
немножко не успел, но тоже выложу, так как другой код:

Код
Sub minus()
iRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To iRow
    If Cells(i, 2).Value = "S" Or Cells(i, 2).Value = "W" Then
        Cells(i, 1).Value = "-" & Cells(i, 1).Value
    End If
Next i
End Sub
 
Цитата
А это сильно меняет задачу?
Вам нужны числа или текст?
 
Ох... У меня стоит формат "Общий". В том файле который я прикрепил как образец и в том с которым я работаю форматы совпадают. Однако при наведении мышкой на него Excel пишет. Что мол число сохранено как текст.

Я попробовал макром
Код
Sub minus()
iRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To iRow
    If Cells(i, 2).Value = "S" Or Cells(i, 2).Value = "W" Then
        Cells(i, 1).Value = "-" & Cells(i, 1).Value
    End If
Next i
End Sub

С файлом приложенным выше он работает.

Однако с другим файлом, у которого вроде бы все 1к1 он уже не работает и не понятна причина. Файл прикладываю.
 
потому что у вас после букв куча пробелов - уберите их и все заработает.
или исправить строку на
Код
If Left(Cells(i, 2), 1) = "S" Or Left(Cells(i, 2), 1) = "W" Then 
Изменено: V - 21.10.2013 10:34:32
 
Вы так и не ответили: нужно число, с которым можно производить арифметические действия или текст?
Страницы: 1
Наверх