Есть ли способ ссылки, если ячейки имеют десятичную точку в VBA? - PullRequest
0 голосов
/ 15 октября 2019

Я хочу создать некоторый код в VBA, который будет просматривать ячейки на листе в столбце B. Если код находит значение ячейки с десятичным числом (в отличие от целого числа, например, не 1, а 1,1), выведитезначение ячейки сразу же на другом листе.

Я знаю, что это будет цикл, и он будет использовать смещение и т. Д. Я не пробовал этот код в VBA, я просто набрал его в качестве примера того, что я буду делать в вопросе.

For each cell in Sheets("Sub Tasks").Range("B1:B" & LastRow)
     If cell = '(DECIMAL FORUMLA) Then 

Ответы [ 2 ]

3 голосов
/ 15 октября 2019

Вы можете использовать что-то вроде этого:

Dim cell As Range
For Each cell In Sheets("Sub Tasks").Range("B1:B" & LastRow)
    If IsNumeric(cell.Value) Then
        If Val(cell.Value) <> Int(cell.Value) Then
            ' The number contains decimals.
            Dim valueToTheRight As Variant
            valueToTheRight = cell.Offset(0, 1).Value
            ' TODO: Add `valueToTheRight` into the appropriate place of the other sheet.
        End If
    Else
        ' The cell value is not a number.
        ' TODO: either do something about it or remove the `else` branch to ignore it.
    End If
Next
1 голос
/ 15 октября 2019

Вы могли бы оценить содержание ячеек?

Sub Demo()
    Dim cell

    For each cell in Sheets("Sub Tasks").Range("B1:B" & LastRow)
        If IsNumeric(c.Value2) And InStr(c.Value2, Application.DecimalSeparator) Then
            Debug.Print c.Value2
        End If
    Next c
End Sub

IsNumeric проверит, содержит ли ячейка число. т.е. пропуская любые строки с полными остановками в. и Instr(c.value2, Application.DecimalSeparator) будет проверять десятичную

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...