< návrat zpět

MS Excel


Téma: Je možný zápis do neotevřeného souboru xls? rss

Zaslal/a 7.7.2015 12:04

Je možný zápis do neotevřeného souboru xls? Tak jak jde z něho číst(databáze), tak i do něho zapisovat?

např. do buňky A1 na list1 souboru C:\data.xls zapsat =1+1

Díky M.

Zaslat odpověď >

icon #025801
eLCHa
Nikdy jsem to nezkoušel, ale řekl bych že to možné je - samozřejmě mám na mysli pomocí VBA.
Nicméně zaprvé mi daleko jednodušší připadá skryté otevření, zápis a zavření a zadruhé nevidím využitelnost (k čemu to má být dobré).citovat
#025803
elninoslov
Riešené napr. tu:
http://wall.cz/index.php?m=topic&id=25763
ďalší dotaz je na to už aj tu:
http://wall.cz/index.php?m=topic&id=25715
a ďalšie...

Využiteľnosť? No ľudia chcú mať "DB" v Exceli pre jeho relatívnu jednoduchosť, čo sa týka vkladania, úpravy, spracovania, výstupu a zrozumiteľnosti dát. Excel ale nieje DB. Na to je Access (a iné), ale to je zložitejšie. Ja som sa už s použitím Excelu ako "DB" stretol často, ale väčšinou v tom istom zošite.
Čítanie by nebol problém, ale zápis je už iná káva. Hovoríme stále o zatvorenom súbore.citovat
icon #025805
eLCHa
@elninoslov
Pokud jde o řešení databáze, lze snad pouvažovat i o jiném formátu - zaprvé xls už bych zavrhl úplně a jen teoreticky mně napadá csv či xml

A technická poznámka
na vložení odkazu zkuste použít tag url místo code ;))citovat
#025806
avatar
Nemám nic proti otevření, uložení a zavření.

Sub Makro3()

Workbooks.Open Filename:="C:\data.xls"

Workbooks("C:\data.xls").Select
End Sub

Ale výše uvedené nefunguje (Run Time error 9)- soubor se otevře, ale jak ho vybrat a potom uložit? Díkycitovat
#025807
avatar
opravuji na activate, stejně nefunguje

Sub Makro3()

Workbooks.Open Filename:="C:\1.xls"

Workbooks("C:\1.xls").Activate
End Subcitovat
icon #025808
eLCHa
Aha ;)Sub subMarine()
With Workbooks.Open("C:\data.xls")
.Sheets("List1").Range("A1").Formula = "=1+1"
.Save
.Close
End With 'Workbooks.Open("C:\data.xls")
End Sub
citovat
#025809
avatar
Aha, díky. Je hezké, když to funguje.citovat
#025849
avatar
Ještě prosím o další poradu :

Sub subMarine()
With Workbooks.Open("C:\data.xls")
.Sheets("List1").Range("A1").Formula = "=1+1"
.Save
.Close
End With 'Workbooks.Open("C:\data.xls")

End Sub

jak do výše uvedeného makra doplním načtení proměnných z jiného listu - třeba ListCelkem nebo List2?

PosledniPlnyRadekListCelkem = Range("A1").End(xlDown).Row
PrvniPrazdnyRadekListCelkem = PosledniPlnyRadek + 1
PosledniPlnyRadekList2 = Range("A1").End(xlDown).Row
PrvniPrazdnyRadekList2 = PosledniPlnyRadek + 1

Díkycitovat
#025855
elninoslov
Neskúšal som, iba z brucha
Sub subMarine()
With Workbooks.Open("C:\data.xls")
.Sheets("List1").Range("A1").Formula = "=1+1"
PosledniPlnyRadekListCelkem = .Sheets("ListCelkem").Range("A1").End(xlDown).Row
PrvniPrazdnyRadekListCelkem = PosledniPlnyRadekListCelkem + 1
PosledniPlnyRadekList2 = .Sheets("List2").Range("A1").End(xlDown).Row
PrvniPrazdnyRadekList2 = PosledniPlnyRadekList2 + 1
.Save
.Close
End With 'Workbooks.Open("C:\data.xls")
End Sub


Podľa mňa máte chybu :
PosledniPlnyRadek + 1
má byť asi
PosledniPlnyRadekListCelkem + 1
a neskôr má byť asi
PosledniPlnyRadekList2 + 1citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje