• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Sumowanie godzin w VBA

Object Storage Arubacloud
0 głosów
967 wizyt
pytanie zadane 10 listopada 2018 w Visual Basic przez querly Nowicjusz (170 p.)
zamknięte 11 listopada 2018 przez querly
Cześć,

Tworzę arkusz do obliczania czasu pracy. Chciałbym zsumować ilość godzin z kliku komórek i zapisać to do zmiennej. Na przykład:

Komórka A1 = 5:00

Komórka A2 = 23:00

Zmienna Suma = A1+A2 (czyli 28 godzin)

Dopiero zaczynam przygodę z VBA i nie wiem jak to zrobić :(

 

Z góry dziękuję za pomoc :)
komentarz zamknięcia: Problem rozwiązany

1 odpowiedź

+1 głos
odpowiedź 11 listopada 2018 przez jeremus Maniak (59,720 p.)
wybrane 11 listopada 2018 przez querly
 
Najlepsza

np. tak - ale nie bój się googlac - w necie znajdziesz mnóstwo przykładów

 Dim suma As Integer
 ' bepośrednie indeksy ( row,col)
 suma = Cells(1, 1).Value + Cells(2, 1).Value
 Cells(3, 1) = suma
 ' tzw range
 suma = Range("A2").Value + Range("A3").Value
 Range("A3").Value = suma

 

komentarz 11 listopada 2018 przez querly Nowicjusz (170 p.)
Wiedziałem że można zrobić to w taki sposób. Ale ja w wyniku dostaje 00:00. Myślałem że trzeba coś z formatowaniem kombinować
komentarz 11 listopada 2018 przez jeremus Maniak (59,720 p.)
zmień na

Dim suma As Double

rozumiem że komórki masz sformatowane jako czas ?
komentarz 11 listopada 2018 przez querly Nowicjusz (170 p.)
Zmieniłem Dim na Double, utworzyłem nowy arkusz, przepisałem makra i działa :) Musiałem zepsuć coś kiedy próbowałem znaleźć źródło problemu. Dzięki za pomoc :D
komentarz 11 listopada 2018 przez Chess Szeryf (76,710 p.)
Function w_sum4(arg33, Optional delimiter33 As String = "x")
 
 Dim rng As Range
 Dim i As Integer
 Dim j As Integer

 For Each rng In arg33
    i = (Split(rng, delimiter33)(0)) + (i)
    j = (Split(rng, delimiter33)(1)) + (j)
 Next rng
 
 w_sum4 = Trim(i) & delimiter33 & Trim(j)
 
    
End Function

Pierwszy argument to adres komórki, np.: A1, a drugi argument to delimiter, czyli, to co wpiszesz pomiędzy dwiema liczbami.

20:20 40:01 10:20

Tutaj pomiędzy liczbami stoi dwukropek, więc trzeba napisać tak:

=w_sum4(A1:A3,":")

Rezultat:

70:41

Jeśli będzie stał "x", to nic nie trzeba będzie wpisać na miejsce drugiego argumentu.

50x10 10x70
=w_sum4(A1:A2)

Rezultat:

60x80

Podobne pytania

+1 głos
1 odpowiedź 262 wizyt
0 głosów
1 odpowiedź 267 wizyt
pytanie zadane 27 września 2022 w Visual Basic przez magda_19 Gaduła (3,080 p.)
0 głosów
1 odpowiedź 189 wizyt
pytanie zadane 1 września 2022 w Visual Basic przez morking Nowicjusz (210 p.)

92,568 zapytań

141,420 odpowiedzi

319,618 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...