Выполнение простой математической операции в макросе VBA - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь выполнить простую проверку столбца чисел.Проверка «если больше чем 50 минус 50 от числа», и тогда мне, вероятно, потребуется сделать некоторое выделение / форматирование, чтобы показать, что ячейкой манипулировали.

Имя листа будет меняться каждый раз, поэтомуЯ не хочу указывать название листа.Кроме того, количество строк будет меняться, поэтому я использовал «диапазон», который проходит по каждой строке.

У меня есть фрагмент кода, который работает, чтобы установить значение ячейки в текст, но я не могу понять,Как выполнить простую математическую операцию с рассматриваемой ячейкой.

Вот фрагмент кода, который работает для изменения значения.

Public Sub testforfifty()
    Dim rcell As Range, rng As Range
    Set rng = Application.ActiveSheet.Range("D1:D" & Application.ActiveSheet.UsedRange.Rows.Count)
    For Each rcell In rng.Cells
        If rcell.Value > 50 Then rcell.Value = "GreaterThan50"
    Next rcell
End Sub

Мне нужно что-то вроде этого:

Public Sub testforfifty()
    Dim rcell As Range, rng As Range
    Set rng = Application.ActiveSheet.Range("D1:D" & Application.ActiveSheet.UsedRange.Rows.Count)
    For Each rcell In rng.Cells
        If rcell.Value > 50 Then rcell.Value = rcell - 50
        Target.Interior.ColorIndex = 8
    Next rcell
End Sub

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

получить Clng (), чтобы заставить представлять значение ячейки как долго.но предварительно предупредив, это выдаст ошибку, если текст пропущен

Clng(rcell.Value) > 50
0 голосов
/ 31 января 2019

Проблема заключалась в том, что некоторые из моих ячеек имели текст вместо цифр, и вместо того, чтобы просто двигаться вперед, как ожидалось, он остановился и выдал ошибку. Код «как то, что мне нужно» работает, но он не обрабатывает нецелые числа и разрывает цикл, если получает ячейку с текстом .Также подсвечивающая часть еще не работает, но это отдельная тема / проблема, над которой я до сих пор работаю.

Я добавил это, и оно работает, даже если оно встречается с ячейкой, которая не является числом(и просто перемещается в следующую ячейку)

   If IsNumeric(rcell.Value) = True Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...