Народ помогите с макросом

Программирование на Visual Basic for Applications
Alligator
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 30.04.2004 (Пт) 8:18

Народ помогите с макросом

Сообщение Alligator » 30.04.2004 (Пт) 8:28

Hi ALL!
Есть ячейки с данными типа
20638,699
20675,399
20718,899
20679,299
20667,899
нужно сложить (округлить) остатки таким образом чтобы когда сумма остатков переходила в целое число плюсовалась единица к следующей ячейке например
имеем столбик вида
10,1
10,2
11,7
14,3
нужен результат в виде
10
10
11
15,3

Помогите пожалуста.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 30.04.2004 (Пт) 9:14

ну типа так:
Код: Выделить всё
n=100 ' Если известен диапазон
For i = 1 To n
   If i = n Then
     Cells(i, 1) = Cells(i, 1) + k
     End
   End If
  k = k + (Cells(i, 1) - Int(Cells(i, 1)))
  Cells(i, 1) = Int(Cells(i, 1))
Next

а если не известен диапазон, то так:
Код: Выделить всё
i = 1
Do While Cells(i, 1) <> ""
    If Cells(i + 1, 1) = "" Then
      Cells(i, 1) = Cells(i, 1) + k
      End
    End If
k = k + (Cells(i, 1) - Int(Cells(i, 1)))
Cells(i, 1) = Int(Cells(i, 1))
i = i + 1
Loop
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Alligator
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 30.04.2004 (Пт) 8:18

Сообщение Alligator » 30.04.2004 (Пт) 10:26

Спасибо все получилось
подправил немного

n = 25 ' Если известен диапазон
For i = 1 To n
k = k + (Cells(i, 1) - Int(Cells(i, 1)))
Cells(i, 1) = Int(Cells(i, 1))
If k > 1 Then
Cells(i + 1, 1) = Int(Cells(i + 1, 1)) + 1
k = k - 1
End If
Next


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 90

    TopList