Страницы: 1
RSS
VBA: манипуляции с переменными по условию If.
 
Если выделение (ячейка) находится ниже десятой строки - ячейка справа от неё объявляется переменной "а".
Если выше десятой строки - ячейка слева.

Нужно, чтобы переменная "а" приняла значение выделенной ячейки, а затем - в этой же "а" выполнилась некая подстановка (например, исчезли запятые).

мой неработающий код:
Код
Sub a()
If Selection.Row > 10 Then
a = Selection.Offset(0, 1)
Else
a = Selection.Offset(0, -1)
End If
a.Formula = Selection
a.Replace What:=",", Replacement:=""
End Sub

я понимаю, что без файла не интересно))
но всё же, подскажите, что не так?

подозреваю, что "a.Formula" и "a.Replace" некорректны для поставленной задачи.

UPDATE
предложенные варианты не решили проблему.
решение: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=101096&T...
Изменено: RazorBaze - 07.02.2018 12:24:20
 
Цитата
RazorBaze написал:
Нужно, чтобы переменная "а" приняла значение выделенной ячейки,
Как то сами себе противоречите
Цитата
RazorBaze написал:
ячейка справа от неё объявляется переменной "а".
 
я новичок в программировании: возможно, хромает терминология

я хочу, чтобы эксель принял за "а" ту ячейку, которая находится справа, или слева от выделенной
- в зависимости от положения выделения (ниже, или выше строки "10"). а потом - чтобы искомая "а" приняла значение выделения, с заменой имеющихся в выделении запятых

возможно, потребуется переписать код с нуля,
но я-то и не знаю, как
Изменено: RazorBaze - 07.02.2018 03:52:34
 
Код
Sub a()
If Selection.Row > 10 Then
a = Selection.Offset(0, 1)
Else
a = Selection.Offset(0, -1)
End If
' a.Formula = Selection - лишняя строка, закомментировал
' a.Replace What:=",", Replacement:="" - заменил на другую
a = VBA.Replace(a, ",", "")
End Sub

Что дальше с а хотите делать?
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
RazorBaze,
Код
a = Replace(Selection(1).Offset(, IIf(Selection.Row > 10, 1, -1)), ",", "")
 
Вариант. Правда непонятно чему должно быть равно a если номер строки активной ячейки РАВЕН 10?
Код
Sub a()
With ActiveCell
    a = IIf(.Row > 10, Replace(.Offset(0, 1), ",", ""), Replace(.Offset(0, -1), ",", ""))
End With
End Sub
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх