VBA округление со значениями ячеек - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь округлить каждую заполненную ячейку в столбце AD: AD до 4 десятичных знаков и заканчивается, когда следующая ячейка пуста.

Я думал, что что-то вроде этого будет работать, но это ошибка в cell.value.

Sub Round_4()
For Each cell In [AD:AD]
    If cell = "" Then Exit Sub
    cell.Value = WorksheetFunction.Round(cell.Value, 4)
Next cell 

End Sub

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Вы можете сделать это:

Dim myCell As Range
Dim myRange As Range

Set myRange = Excel.Application.ThisWorkbook.Worksheets(worksheetNameGoesHereInDoubleQuotes).Range("AD:AD")

For Each myCell In myRange
    If Not IsEmpty(myCell) Then
        myCell.Value = Application.WorksheetFunction.Round(CDbl(myCell.Value), 4)
    'me being lazy with my range assignment
    ElseIf IsEmpty(myCell) Then
        Exit For
    End If
Next
0 голосов
/ 31 августа 2018

Вы можете работать только до первой пустой ячейки с

Range("AD1", Range("AD1").End(xlDown)).Value = Evaluate("round(" & Range("AD1", Range("AD1").End(xlDown)).Address & ",4)")

Обратите внимание, что используется ссылка на Activesheet. Вы можете заключить в оператор С, предоставляющий родительский лист.

...