Forum » Programska oprema » Makroji v excelu
Makroji v excelu
Volk| ::
Upam da mi bo kdo lahko pomagal...
Posnel sem makro, ki mi iz notepada uvozi podatke in razvrsti. Vse lepo in prav. Toda ko pa hocem ponovno uvozit podatke(vsak dan bodo novi podatki), pa mi jih napise v isto vrstic,tam kjer sem ze imel podatke. Moral bi nekako spremeniti kodo da bi mi vnašalo podatke spodaj,za starimi podatki.
Recimo da mi v polje A1 do A100 vnese prve podatke. Ko bi zagnal drugic makro bi mi moral vnest podatke v polje od A101 do A200.
Zal se ne razumem toliko v kodo da bi znal to popravit. Help!
Se Koda:
Sub Vnos()
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Data.txt", Destination _
:=Range("A2"))
.Name = "Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=72
Range("A107").Select
End Sub
Posnel sem makro, ki mi iz notepada uvozi podatke in razvrsti. Vse lepo in prav. Toda ko pa hocem ponovno uvozit podatke(vsak dan bodo novi podatki), pa mi jih napise v isto vrstic,tam kjer sem ze imel podatke. Moral bi nekako spremeniti kodo da bi mi vnašalo podatke spodaj,za starimi podatki.
Recimo da mi v polje A1 do A100 vnese prve podatke. Ko bi zagnal drugic makro bi mi moral vnest podatke v polje od A101 do A200.
Zal se ne razumem toliko v kodo da bi znal to popravit. Help!
Se Koda:
Sub Vnos()
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Data.txt", Destination _
:=Range("A2"))
.Name = "Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=72
Range("A107").Select
End Sub
- premaknil iz Pomoč in nasveti: ToniT ()
smetko ::
1. Če hočeš da se program zapolni kje je končal pač moraš uporabiti neko celico na listu, kjer shranjuješ do kje je že napisano. v mojem primeru je to na listu "List3" celica A1(lahko je katerikoli list oziroma katerakoli celica) . V makroju tudi uporabim spremenljivko Zac_vrstica v katero vpišem vrednost iz prej izbrane celice.
Zac_vrstica = Worksheets("List3").Cells(1, "A")
Cells(Zac_vrstica, "A").Select ' ta vrstica ni obvezna
na začetku (2. vrstiva) namesto
:=Range("A2"))
vpišeš
:=Cells(Zac_vrstica, "A"))
in na koncu dodaš
Worksheets("List3").Cells(1, "A") = Zac_vrstica + 100
Selection.End(xlDown).Select ' ta vrstica ni obvezna
zadnje dve vrstice
ActiveWindow.SmallScroll Down:=72
Range("A107").Select
lahko tudi izbrišeš ali zakomentiraš.
Če shranjuješ podatek do kje je prišel na aktivnem listu potem zamenjaj izraz
Worksheets("List3").Cells(1, "A")
z
Cells(1, "A")
Zac_vrstica = Worksheets("List3").Cells(1, "A")
Cells(Zac_vrstica, "A").Select ' ta vrstica ni obvezna
na začetku (2. vrstiva) namesto
:=Range("A2"))
vpišeš
:=Cells(Zac_vrstica, "A"))
in na koncu dodaš
Worksheets("List3").Cells(1, "A") = Zac_vrstica + 100
Selection.End(xlDown).Select ' ta vrstica ni obvezna
zadnje dve vrstice
ActiveWindow.SmallScroll Down:=72
Range("A107").Select
lahko tudi izbrišeš ali zakomentiraš.
Če shranjuješ podatek do kje je prišel na aktivnem listu potem zamenjaj izraz
Worksheets("List3").Cells(1, "A")
z
Cells(1, "A")
No comment
Volk| ::
Sem spremenil. debuger mi javi napako. Zal pa ne znam programirat tega. Je mogoče kje kaka sintaktična napaka?
smetko ::
Da javi napako je lahko sledeči razlog:
Celica, katero uporabimo za shranjevanje lokacije (v našem primeru A1 na listu "List3" mora vsebovati neko začetno vrednost, to je vrstica v kateri začne pisati). za tačetek v to celico vpiši 2.
Celica, katero uporabimo za shranjevanje lokacije (v našem primeru A1 na listu "List3" mora vsebovati neko začetno vrednost, to je vrstica v kateri začne pisati). za tačetek v to celico vpiši 2.
No comment
Zgodovina sprememb…
- spremenilo: smetko ()
smetko ::
posredujem ti še celotno kodo:
Da ta koda deluje brez napak moraš v celico A1 na trenutnem listu vnesi vrednost na primer 2(obvezno celo pozitivno štrvilo manjše od 65000).
Na disku mora biti datoteka D:\Data.txt.
koda:
Sub Vnos()
Zac_vrstica = Cells(1, "A").Value
Cells(Zac_vrstica, "A").Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Data.txt", Destination _
:=Cells(Zac_vrstica, "A"))
.Name = "Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Cells(1, "A").Value = Zac_vrstica + 100
Selection.End(xlDown).Select
End Sub
Da ta koda deluje brez napak moraš v celico A1 na trenutnem listu vnesi vrednost na primer 2(obvezno celo pozitivno štrvilo manjše od 65000).
Na disku mora biti datoteka D:\Data.txt.
koda:
Sub Vnos()
Zac_vrstica = Cells(1, "A").Value
Cells(Zac_vrstica, "A").Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Data.txt", Destination _
:=Cells(Zac_vrstica, "A"))
.Name = "Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Cells(1, "A").Value = Zac_vrstica + 100
Selection.End(xlDown).Select
End Sub
No comment
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Bash skriptaOddelek: Programiranje | 3235 (2547) | poweroff |
» | c# datagridview in comboxOddelek: Programiranje | 1208 (1096) | OmegaM |
» | null reference exception na čudnem mestu C#Oddelek: Programiranje | 1300 (1237) | krho |
» | [Excel]Vrednost celice = ime dokumentaOddelek: Programska oprema | 4744 (4166) | veteran |
» | [Excel] problem z makrojem, visual basic (strani: 1 2 )Oddelek: Programiranje | 5660 (5123) | steev |