@Koliber86: A nie możesz tego po prostu formułami załatwić? Jak w E6 wpiszesz 00:00:00 wówczas do E7 wpisujesz =E6+"00:15:00" i przeciągasz dokąd tam Ci pasuje.
@Koliber86: No generalnie błąd masz taki, że do komórki Range("e6").Offset(i, 0) w każdej interacji bierzesz jej wartość (czyli 0), zamiast wartość komórki wyżej i dodajesz 00:15, więc w efekcie masz 00:15.
Ale do dodawania czasu jest DATEADD -- podmień sobie w swoim kodzie 00:00 na 1, 00:15 na 2, a w pętli odwołuj się do komórki wyżej (czyli Range("e6").Offset(i - 1, 0)), to zobaczysz, że dodawanie liczb działa (kod niżej).
w drugim offsecie powinno byc cos typu offset(-1+i,0) ale nie chce przyjac takiego kodu :/
@Koliber86: to coś słabo się starałeś, bo kod jest prawidłowy i by rozwiązał problem. W takich przypadkach zamiast pętli znacznie lepiej (przy małej ilości danych - mała różnica, ale przy większej - kod zadziała dużo szybciej) użyć wbudowaną funkcjonalność - na przykład seria danych:
Sub test() Range("E6").Value = "00:00" Range("E6").Resize(96).DataSeries , , , "00:15" End Sub
Ostatnio wsiąkłem w temat zarówno UFO jak i UAP i mam do was całkowicie poważne pytanie, mieliście w swoim życiu jakieś doświadczenia z potencjalnymi obiektami pochodzenia pozaziemskiego? #ufo #uap
Hejka,
co tu jest zle.
'Range("E6").Value = "00:00"
'For i = 1 To 95
' Range("e6").Offset(i, 0) = Range("e6").Offset(i, 0) + "00:15"
'Next i
chce zeby od E6 w dol co komorke dodawal 15 minut a mi wychodzi cos a la
00:15
00:15
00:15
00:15
00:15
00:15
gdzie zwalilem?
@Nemootji: w drugim offsecie powinno byc cos typu offset(-1+i,0) ale nie chce przyjac takiego kodu :/
Sub test()
Dim i As Integer
Range("E6").Value = "00:00"
For i = 1 To 95
Range("e6").Offset(i, 0) = DateAdd("n", 15 * i, Range("e6"))
Next i
End Sub
Jak w E6 wpiszesz 00:00:00 wówczas do E7 wpisujesz =E6+"00:15:00" i przeciągasz dokąd tam Ci pasuje.
No generalnie błąd masz taki, że do komórki Range("e6").Offset(i, 0) w każdej interacji bierzesz jej wartość (czyli 0), zamiast wartość komórki wyżej i dodajesz 00:15, więc w efekcie masz 00:15.
Ale do dodawania czasu jest DATEADD -- podmień sobie w swoim kodzie 00:00 na 1, 00:15 na 2, a w pętli odwołuj się do komórki wyżej (czyli Range("e6").Offset(i - 1, 0)), to zobaczysz, że dodawanie liczb działa (kod niżej).
Sub
Komentarz usunięty przez autora
@Koliber86: to coś słabo się starałeś, bo kod jest prawidłowy i by rozwiązał problem.
W takich przypadkach zamiast pętli znacznie lepiej (przy małej ilości danych - mała różnica, ale przy większej - kod zadziała dużo szybciej) użyć wbudowaną funkcjonalność - na przykład seria danych:
Sub test()
Range("E6").Value = "00:00"
Range("E6").Resize(96).DataSeries , , , "00:15"
End Sub
no i oczywiście zamiast
+ "00:15"
musisz to zamienić na czas (liczbę), a sposobów jest sporo:+TimeValue("00:15")
+CDate("00:15")
+15/60/24
W ostatniej wersji korzystamy z tego, że czas to po prostu liczba w zakresie 0-1 (część doby),