Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  VB serial creator Vol 2 märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
NATAS999
HV Guru

liitunud: 02.04.2007




sõnum 22.11.2008 13:16:54 VB serial creator Vol 2 vasta tsitaadiga

Kuna eelmine teema visati prügikasti konkreetsuse puudumise tõttu, siis teen uue ja parema teema.

Programmi ülesandeks on teha txt fail, mis sisaldab kõiki SN-d, kui on antud intervall ja esimene number.

Ühes reas järjestikuste numbrite vahe = |"intervalli väärtus"|
Ühes tulbas järjestikuste numbrite vahe = |1|

Väike näide macro recordist:

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "501"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "1001"
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "1501"

    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
   
    Range("A2:D2").Select
    Selection.AutoFill Destination:=Range("A2:D500"), Type:=xlFillDefault
   
    Range("A1:D500").Select
    Selection.NumberFormat = "0000"

End Sub


Selgitusi koodijupi kohta:

Tegemist on praegu ühe macro recordiga ja juba sellest on vähemalt niipalju kasu, et ei pea enam sadu-/kümneid-/tuhandeid ridu alla lohistama exceli tabelis ja õiget rida otsima.

Tõsi, praegu oleks siis vaja iga variandi jaoks (1;2;3...n+1 tulpa) eraldi macrot või käsitsi lisada paar rida juurde, et saaks ühe tulba juurde, aga praegu jätame selle probleemi kõrvale.

Esialgu oleks vaja siiski viiteid VB käskude ja nende kasutamise kohta.

Küsimusi:

Mida tähendab see FormulaR1C1 ActiveCell taga?

See koht tundub väga imelik:
Range("A2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "=R[-1]C+1"
Kas on võimalik kuidagi sama asja ära ajada kasutades Range("A2:D2).Select või Rows("2:2").Select?
Äkki hoopis ilma teise reata üle jäänd numbrid kätte kasutades mingit muud käsku Type:=xlFillDefault asemel?

Esimese numbri väärtuse ja intervalli määramine tuleks ära teha muutujaga, aga näe, ei mäleta enam neid käske kuidagi.

Momendil ei ole mõistus muid küsimusi aursaadavalt formuleerima.

PS. Arvestage sellega, et ainuke kogemus progemisega piirdub vaid basicu ja VB-ga keskkooli progemis tunnis ragistamisega.

Edit: Leidsin pika otsimise peale ühe VB6 tutorialidega lehe. Tuletab natuke meelde ja omandab uusi asju sealt lehelt.

Edit 2:
Dim Intervall As Integer
Dim Numbrikohad As String

Sub Math()

    Intervall = 500
    Numbrikohad = "0000"
   
    Range("A1").Select
        ActiveCell.FormulaR1C1 = 1
    Range("B1").Select
        ActiveCell.FormulaR1C1 = Intervall + "1"
    Range("C1").Select
        ActiveCell.FormulaR1C1 = "2" * Intervall + "1"
    Range("D1").Select
        ActiveCell.FormulaR1C1 = "3" * Intervall + "1"
   
    Range("A1:D1").Select
        Selection.AutoFill Destination:=Range("A1:D500"), Type:=xlFillSeries
   
    Range("A1:D500").Select
        Selection.NumberFormat = Numbrikohad

End Sub


Probleem: oleks vaja muutuja "Intervall" väärtus saada kuidagi Range("A1:D[siia])

muidu sellisena teeb koodijupp excelisse sellise joru ära nagu vaja on.


Edit 3:

Dim NumbriFormaat As String
NumbriFormaat = "\AB 00000"
Rows("1:1000").Select
Selection.NumberFormat = NumbriFormaat

Siin tekib selline probleem, et osade tähekombinatsioonide korral viskab sellise veateate: Run-time error '1004': Unable to set the NumberFormat property of the Range class ja debug viskab Selection.NumberFormat = NumbriFormaat reale.

Mida teha? Või on viga mujal koodis? Selle konkreetse \AB 00000 korral viskab ka selle vea teate, kuid neid kombinatsioone on veel. NumberFormat pikkusest see ei olene. \AC 00000 näiteks töötab.

Kuna max tulpasi on 40 võimalik praegu kasutada, siis lahendasin AutoFill-ga ühe eelpool väljatoodud probleemidest.
Kommentaarid: 41 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 39
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 23.11.2008 23:15:16 Re: VB serial creator Vol 2 vasta tsitaadiga

NATAS999 kirjutas:
Programmi ülesandeks on teha txt fail, mis sisaldab kõiki SN-d, kui on antud intervall ja esimene number.

Kahjuks ei saa kohe mitte aru, mida sa ikkagi teha üritad. Mis asjad näiteks need SN-id on, mida sa sinna tekstifaili tahad salvestada? Ja mida sul see exceli tabel üldse sisaldab?
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
NATAS999
HV Guru

liitunud: 02.04.2007




sõnum 24.11.2008 19:02:29 vasta tsitaadiga

SN=serial number

excel ei sisalda midagi alguses. koodijupp tekitab excelisse terve karja numbreid ja siis saveb txt faili.

sellise sisuga txt faili üritan teha näiteks:

CN 0001 CN 0004 CN 0007
CN 0002 CN 0005 CN 0008
CN 0003 CN 0006 CN 0009
Kommentaarid: 41 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 39
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 25.11.2008 11:46:38 vasta tsitaadiga

tsitaat:


Probleem: oleks vaja muutuja "Intervall" väärtus saada kuidagi Range("A1:D[siia])



Saab nii:
Selection.AutoFill Destination:=Range("A1:" & Intervall & "), Type:=xlFillSeries

Ja kui tekib probleeme, siis nii toimib kindlasti:
Selection.AutoFill Destination:=Range("A1:" & Trim(Str(Intervall)) & "), Type:=xlFillSeries
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
NATAS999
HV Guru

liitunud: 02.04.2007




sõnum 25.11.2008 17:48:50 vasta tsitaadiga

Tänud, programm olemas thumbs_up.gif
_________________
"Kuidas on see hea?"
-Auto kirurgia kliinik
Kommentaarid: 41 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 39
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  VB serial creator Vol 2
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.