0 Dołączył: 2012-01-22 Wpisów: 25
Wysłane:
27 stycznia 2012 00:13:35
Mam taki problem.
Poprzez opcję Dane/połączenie ściągam aktualne notowania do excela. Niestety dane ściągają się z kropkami a nie przecinkami, dlatego też muszę zmienić kropki na przecinki, aby excel mógł je "rozumieć". Napisałem proste makro automatyzujace te czynności. Niestety proces odświeżania danych trwa kilka sekund i gdy dane w koncu się ściągną to nie następuje kolejny krok, czyli zamiania kropek na przecinki, bo jak przypuszczam ten drugi krok został wykonany zanim proces odświeżania danych się zakończył.
Chodzi mi zatem o to, aby opóźnić wykonanie drugiego kroku o kilka sekund, tak by dac czas na definitywne ściągnięcie danych, na których ten drugi krok ma być wykonany.
Jaki kod można zastosować aby opóźnić wykonanie kolejnego polecenia o kilka sek?
Kod wygląda następująco:
Sub dane_import()
' odśwież dane
Sheets("automat").Select ActiveWorkbook.RefreshAll Shets("wstep").Select ' zmień kropki na przecinki
Sheets("automat").Select Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False ' oblicz różnice i przeciągnij
Sheets("automat").Select Range("U3").Select ActiveCell.FormulaR1C1 = "=IF(RC[-5]<RC[-10],RC[-5]-RC[-10],""nie"")" Range("U3").Select Selection.Copy Range("U4").Select Range(Selection, Selection.End(xlDown)).Select Range("U4:U227").Select ActiveSheet.Paste Range("U2").Select Sheets("wstep").Select End Sub
handcare
|
0 Dołączył: 2009-03-17 Wpisów: 1
Wysłane:
30 stycznia 2012 00:35:57
Witaj,
Mozesz sprobowac tego:
Application.Wait Now + TimeValue("0:00:01"),
choc z doswiadczenia wiem, ze excel powinien poczkac z makrem az kalkulacje zostana wykonane (choc moze to nie dotyczy danych zewnetrznych).
Innym sposobem moze byc - odswiez dane zewnetrzne zaraz po uruchomieniu arkusza, a makro wykonaj po nacisniecu przycisku czy jak tam wolisz.
Inna rzecza jakiej mozesz sie przyjzec to trigery dla poszczegolnego skoroszytu takie jak np. Calculate, Activate, SelectionChange - moze to pomoze.
pozdrawiam michal
|