Я использую функцию sumif в цикле for, пытаясь разделить каждое число в столбце на 100000000, чтобы настроить его единицу измерения и округлить окончательные результаты до 2 знаков после запятой. VBA всегда возвращает мне целые числа, но если я нажму на ячейки, нужная форма появится в поле ввода под меню.

Я пытался округлить результаты внутри цикла for, это не сработало.

Ниже приведен то, что я пробовал,

Sub unitchange()
Dim j As Integer
Dim u As Integer
u = Cells(Rows.Count, 1).End(xlUp).Row + 1
For j = 4 To u
Cells(j, 6) = Round((Cells(j, 6) / 100000000), 2)
Next j
End Sub

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

0
Ziqi Zhang 6 Ноя 2019 в 19:19
Почему бы просто не использовать собственный числовой формат?
 – 
BigBen
6 Ноя 2019 в 19:41
Вы имеете в виду ячейки (j, 6).numberformat = «#, ## 0»? Куда мне его положить? Пробовал сразу после for и перед next, не получилось в обоих случаях.
 – 
Ziqi Zhang
7 Ноя 2019 в 04:14
Возможно, у вас есть текст, похожий на число? Кроме того, Round ведет себя немного иначе, чем WorksheetFunction.Round.
 – 
BigBen
7 Ноя 2019 в 05:49

1 ответ

Может заодно сбросить формат номера сотового...

Sub unitchange()
    Dim j As Integer
    Dim u As Integer
    u = Cells(Rows.Count, 1).End(xlUp).Row + 1
    For j = 4 To u
        Cells(j, 6) = Round((Cells(j, 6) / 100000000), 2)
        Cells(j, 6).NumberFormat = "General"
    Next j
End Sub
0
TechnoDabbler 7 Ноя 2019 в 05:37