Jeigu yra būdas padaryti geriau, atrask jį. T. A. Edison

Sveiki, Svečias
Prisijungimo vardas: Slaptažodis: Prisiminti mane
  • Puslapis:
  • 1

TEMA: Kelių failų atnaujinimas

Kelių failų atnaujinimas prieš 3 m. 5 mėn. #1

  • delfas2
  • delfas2 avataras
  • Neprisijungęs
  • Naujokas
  • Žinutės: 13
  • Reputacija: 0
Sveiki, turiu tokią situaciją. Reikia dažnai atnaujinti keturis failus. Todėl norėčiau tą automatizuoti. Pasidariau tokią komandą:

Sub apskaitos()

Workbooks.Open Filename:="V:\DLA\DLA2\AAS\AAS DLA.xlsx"
ActiveWorkbook.RefreshAll
Workbooks("AAS DLA.xlsx").Close SaveChanges:=True


Workbooks.Open Filename:="V:\DLA\DLA2\ARS\ARS DLA.xlsx"
ActiveWorkbook.RefreshAll
Workbooks("ARS DLA.xlsx").Close SaveChanges:=True


Workbooks.Open Filename:="V:\DLA\DLA2\TAS\TAS DLA.xlsx"
ActiveWorkbook.RefreshAll
Workbooks("TAS DLA.xlsx").Close SaveChanges:=True


Workbooks.Open Filename:="V:\DLA\DLA2\Apskaita SLA TEST3.xlsb"
ActiveWorkbook.RefreshAll
Workbooks("Apskaita SLA TEST3.xlsb").Close SaveChanges:=True

Bėda tame, kad pirmus tris failus tik atidaro išsaugo ir uždaro (neatnaujinus) ir tik paskutinįjį atidaro, atnaujina, išsaugo ir uždaro. Kaip padaryti, kad ir pirmus tris atnaujinų?
Administratorius uždraudė viešą pranešimų rašymą.

Kelių failų atnaujinimas prieš 3 m. 5 mėn. #2

  • hattrick
  • hattrick avataras
  • Neprisijungęs
  • Veteranas
  • Žinutės: 60
  • Gauta padėka 35
  • Reputacija: 8
Panaudojau tavo parašytą kodą ir man abu failus atnaujina ir išsaugo vieną po kito.

Sub refresh()

Workbooks.Open Filename:="N:\New folder\Failas1.xlsx"
ActiveWorkbook.RefreshAll
ActiveWorkbook.Close SaveChanges:=True

Workbooks.Open Filename:="N:\New folder\Failas2.xlsx"
ActiveWorkbook.RefreshAll
ActiveWorkbook.Close SaveChanges:=True

End Sub

Problema gali būti tame, kad tavo pirmuose failuose ne Pivot Table Report'ai ar duomenų eilutės, todėl RefreshAll funkcija jiems netinka. Kažkur mačiau, kad gali tekti naudoti DoEvents arba daryti loop'ą kiekvienam objektui faile atnaujinti.
Administratorius uždraudė viešą pranešimų rašymą.

Kelių failų atnaujinimas prieš 3 m. 5 mėn. #3

  • delfas2
  • delfas2 avataras
  • Neprisijungęs
  • Naujokas
  • Žinutės: 13
  • Reputacija: 0
Pirmuose trijuose failuose - tai su Power Query surinkti duomenys. Rankiniu būdu Refresh All tik ir atnaujina...
Administratorius uždraudė viešą pranešimų rašymą.

Kelių failų atnaujinimas prieš 3 m. 5 mėn. #4

  • hattrick
  • hattrick avataras
  • Neprisijungęs
  • Veteranas
  • Žinutės: 60
  • Gauta padėka 35
  • Reputacija: 8
Taip, jei yra Power Query RefreshAll ir neturi veikti. Pabandyk tokį dalyką su vienu failu:

Dim Connection As WorkbookConnection
For Each Connection In ThisWorkbook.Connections
Connection.Refresh
Next Connection

Jeigu po to reikia dar atnaujinti ir Pivot'us tam pačiam faile, tai reikia išjungti "background query refresh". Tą gali padaryt per Connection properties arba kodo eilutę parašyt .OLEDBConnection.BackgroundQuery = False. Tik nesu tikras dėl OLEDB.. priklauso nuo to koks pas tave connection'as ten.
Tada beliks tik įvykdyti RefreshAll funkciją :)
Administratorius uždraudė viešą pranešimų rašymą.
  • Puslapis:
  • 1
Moderatoriai: bankeris
Puslapio sukūrimo laikas: 0.279 sekundžių