Zavrieť

Porady

VBA Excel -premenná vo funkcii Range

Zdravím poraďákov
Problém spočíva v tom ako zmeniť zápis makra aby miesto príkazu napr. Range("L21").Select na základe ktorého sa v aktívnom zošite nastaví bunka na adrese L21 nastavila vždy iná bunka Row a Column, podľa toho, čo zadám do iných buniek
Príklad Makra:
Sheets("Hárok1").Select
x = Range("F4") ´do premennej X uloží údaj vo formáte čísla z bunky F4
y = Range("G4") ´do premennej y uloží údaj vo formáte čísla z bunky G4
Range("N10").Select ´označí a skopíruje bunku N10
Selection.Copy
Sheets("Sheet1").Select
Range("L21").Select
Selection.Paste
Sheets("Hárok1").Select
Ide o to, že keď nahradím v príkaze Range ("L21"). Selection príkazom Range ("RowXColumnY"). Selection tak to nefunguje a ja potrebujem aby sa v druhom zošite nastavil vždy na adresu RowX a ColumnY ktorá sa mení podľa údajov buniek F4 a G4
Ďakujem za všetky rady a podnetné nápady.
Robo.
Naposledy upravil robeno : 15.02.13 at 11:26 Dôvod: vypršal čas písania
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    PushCar je offline (nepripojený) PushCar

    PushCar
    Riešenie:

    Sub CisloRiadkaCisloStlpca()


    Dim x As Integer
    Dim y As Integer


    Sheets("Hárok1").Select
    x = Range("F4")
    y = Range("G4")
    Sheets("Sheet1").Cells(x, y).Value = Sheets("Hárok1").Range("N10").Value


    End Sub

    robeno je offline (nepripojený) robeno

    robeno
    Ďakujem za radu
    Už som vyriešil,,,síce svojsky, ale funguje a to som nedefinoval ani premenné stačilo formátovať bunky F4 a G4
    Dim x As Integer
    Dim y As Integer



    x = Range("G4")
    y = Range("F4")
    Range("N10").Select
    Selection.Copy
    Sheets("Sheet1").Select
    ActiveSheet.Cells(x, y).Select
    ActiveSheet.Paste
    Sheets("Hárok1").Select
    Ešte raz ďakujem...určite to vyskúšam aj tvojou metódou.

    PushCar je offline (nepripojený) PushCar

    PushCar
    Za málo
    Tvoja metóda je dobrá v tom, že keď si krokuješ makro tak vidíš, čo to robí. Keď ale spustíš časomieru tak zistíš, ktoré je rýchlejšie. V prípade dlhšieho makra, ktoré trvá aj pol hodinu je určite lepšie ho optimalizovať. Na to, ktorý kód v makre je rýchlejší slúži jednoduchá formulka:

    Code:
    Sub TrvanieKodu()
    Dim MyTimer As Double
    Dim x As Integer
    Dim y As Integer
    
    
    MyTimer = Timer
    x = Sheets("Hárok1").Range("g4")
    y = Sheets("Hárok1").Range("f4")
    Sheets("Sheet1").Cells(x, y).Value = Sheets("Hárok1").Range("N10").Value
    prva = Timer - MyTimer
    
    
    MyTimer = Timer
    x = Range("G4")
    y = Range("F4")
    Range("N10").Select
    Selection.Copy
    Sheets("Sheet1").Select
    ActiveSheet.Cells(x, y).Select
    ActiveSheet.Paste
    Sheets("Hárok1").Select
    druha = Timer - MyTimer
    
    
    Range("B1") = prva
    Range("B2") = druha
    
    
    End Sub
    Tvoj kod trva cca 0,016 optimalizovany cca 0,00000000000058.

    VBA Excel -premenná vo funkcii Range

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.