powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование из числа в строку в EXCEL
4 сообщений из 4, страница 1 из 1
Преобразование из числа в строку в EXCEL
    #33655169
Фотография Полковник Трофимов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно преобразовать числа вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 32 . 11 
 34 . 24 
 34 . 34 
 41 . 01 
 43 . 58 
 133 . 19 
 155 . 00 
 158 . 35 
 162 . 35 
 134 . 51 
 140 . 25 
 143 . 34 
 160 . 21 
 174 . 03 
 176 . 00 
 183 . 55 
 196 . 53 
 203 . 00 
 94 . 45 
во время, вида:
Код: plaintext
1.
2.
3.
4.
5.
 0 : 34 : 24 
 0 : 34 : 34 
 0 : 41 : 01 
 0 : 43 : 58 
 2 : 13 : 19 
...
для дальнейших вычислений. Спасибо!

ЗЫ обратите внимание, что во входных данных после точки- не десятичная часть минуты в десятичном формате, а количество секунд!
...
Рейтинг: 0 / 0
Преобразование из числа в строку в EXCEL
    #33655450
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Преобразование из числа в строку в EXCEL
    #33655502
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если это время суток, то:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Public Sub ConvertToTime()
    Dim wb As Workbook
    Dim cel As Range
    Dim rng As Range
    Dim intHours As Integer
    Dim intMinutes As Integer
    Dim avarItems As Variant
    
    Set wb = ThisWorkbook
    Set rng = wb.Worksheets("Лист1").Range("A1").CurrentRegion
    
    For Each cel In rng.Cells
        avarItems = Split(cel.Value, ".")
        
        If (avarItems( 0 ) \  60 ) >  1  Then
            intHours = avarItems( 0 ) \  60 
            intMinutes = avarItems( 0 ) Mod  60 
        Else
            intHours =  0 
            intMinutes = avarItems( 0 )
        End If
        
        cel.Offset( 0 ,  1 ).NumberFormat = "h:mm:ss"
        cel.Offset( 0 ,  1 ).Value = _
          TimeSerial(intHours, intMinutes, avarItems( 1 ))
    Next cel
End Sub

А, если это просто какое-то суммарное время:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Sub ConvertToTime2()
    Dim wb As Workbook
    Dim cel As Range
    Dim rng As Range
    Dim lngHours As Long
    Dim lngSeconds As Long
    Dim avarItems As Variant
    
    Set wb = ThisWorkbook
    Set rng = wb.Worksheets("Лист1").Range("A1").CurrentRegion
    
    For Each cel In rng.Cells
        avarItems = Split(cel.Value, ".")
        
        lngSeconds = avarItems( 0 ) *  60  + avarItems( 1 )
               
        cel.Offset( 0 ,  1 ).NumberFormat = "h:mm:ss"
        cel.Offset( 0 ,  1 ).Value = Format(lngSeconds \  3600 , "00") & ":" & _
          Format((lngSeconds \  60 ) Mod  60 , "00") & ":" & _
          Format(lngSeconds Mod  60 , "00")
    Next cel
End Sub
...
Рейтинг: 0 / 0
Преобразование из числа в строку в EXCEL
    #33656020
Фотография Полковник Трофимов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо кросавчеги!

Воспользовался готовым решением учаснега vkodor!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование из числа в строку в EXCEL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]