Výsledky 1 až 3 z 3

Téma: Makro v Excelu - příklad na Range.Select

  1. #1

    Standardní Makro v Excelu - příklad na Range.Select

    Zdravím, mám dotaz. Obrátil se na mně kamarád s žádostí o pomoct ale v tomhle nejsem kovanej.
    Potřebuje v makru postupně vybírat oblasti např. Range("D9:H24").Select
    ale danou oblast mu budou definovat proměnný. Pokaždý to bude něco jinýho.
    jak to správně zapsat ?
    Dík
    INTEL P4 2.8 GHz, MSI 456PE Neo2, 512 MB DDR,Seagate BarracudaIV 80GB S-ATA, ATI Sapphire Radeon 9000 Pro ,AVer TV Studio, Plextor 48/24/48TA, Windows XP Pro, OLYMPUS C720UZ

  2. #2

    Standardní Re: Makro v Excelu - příklad na Range.Select

    Citace Původně odeslal Radim Zobrazit příspěvek
    Zdravím, mám dotaz. Obrátil se na mně kamarád s žádostí o pomoct ale v tomhle nejsem kovanej.
    Potřebuje v makru postupně vybírat oblasti např. Range("D9:H24").Select
    ale danou oblast mu budou definovat proměnný. Pokaždý to bude něco jinýho.
    jak to správně zapsat ?
    Dík
    Do Range sypeš řetězec, takže by to mohlo jet takhle:


    Kód:
        Dim sloupec1 As String, sloupec2 As String
        Dim radek1 As Integer, radek2 As Integer
    
        Worksheets("List1").Activate
        radek1 = 10
        radek2 = 200
        slupec1 = "A"
        sloupec2 = "C"
        
        Dim all As String
        
        Range(slupec1 & radek1 & ":" & sloupec2 & radek2).Select
    Lenovo X200 | Lenovo Ultrabase | Sennheiser HD 595 | Fujitsu Siemens P19-2 Black | Logitech Internet Navigation Keyboard | Logitech VX Revolution

  3. #3

    Standardní Re: Makro v Excelu - příklad na Range.Select

    Nebo i takhle:
    Kód:
    Option Explicit
        Dim sloupec1 As String, sloupec2 As String, radek1 As Integer, radek2 As Integer
    
    Sub makro()
        If radek1 = 0 Then
            radek1 = 10
            radek2 = 200
            sloupec1 = "A"
            sloupec2 = "C"
        End If
        Worksheets("List1").Activate
    znovu:
        Dim Dotaz, Dotaz2
        On Error GoTo chyba
        radek1 = InputBox("Počáteční řádek?", "Počáteční řádek", radek1)
        radek2 = InputBox("Konečný řádek?", "Konečný řádek", radek2)
        sloupec1 = UCase(InputBox("Počáteční sloupec?", "Počáteční sloupec", sloupec1))
        sloupec2 = UCase(InputBox("Konečný sloupec?", "Konečný sloupec", sloupec2))
        Dotaz2 = MsgBox("Zvolený rozsah je " & sloupec1 & "-" & radek1 & ":" & sloupec2 & "-" & radek2, vbYesNo)
        If Dotaz2 = 7 Then GoTo znovu
        Range(sloupec1 & radek1 & ":" & sloupec2 & radek2).Select
        Exit Sub
    chyba:
        Dotaz = MsgBox("Zadali jste chybně údaj. Zadáte znovu?", vbYesNo)
        If Dotaz = 6 Then Resume Else Exit Sub
    End Sub
    Chtělo by to ještě ošetřit situaci, kdy někdo do sloupce zadá číslici místo písmena, což celé makro zbytečně komplikuje. Z tohoto důvodu je také vhodnější používat styl odkazu R1C1. Pak by to mohlo být takto:

    Kód:
    Option Explicit
        Dim radek1 As Integer, radek2 As Integer, sloupec1 As Integer, sloupec2 As Integer
        
    Sub makro()
         If radek1 = 0 Then
            radek1 = 10
            radek2 = 200
            sloupec1 = 1
            sloupec2 = 3
        End If
        Worksheets("List1").Activate
    znovu:
        Dim Dotaz, Dotaz2
        On Error GoTo chyba
        radek1 = InputBox("Počáteční řádek?", "Počáteční řádek", radek1)
        radek2 = InputBox("Konečný řádek?", "Konečný řádek", radek2)
        sloupec1 = InputBox("Počáteční sloupec?", "Počáteční sloupec", sloupec1)
        sloupec2 = InputBox("Konečný sloupec?", "Konečný sloupec", sloupec2)
        Dotaz2 = MsgBox("Zvolený rozsah je R" & sloupec1 & "C" & radek1 & ":R" & sloupec2 & "C" & radek2, vbYesNo)
        If Dotaz2 = 7 Then GoTo znovu
        Range(Cells(radek1, sloupec1), Cells(radek2, sloupec2)).Select
        Exit Sub
    chyba:
        Dotaz = MsgBox("Zadali jste chybně údaj. Zadáte znovu?", vbYesNo)
        If Dotaz = 6 Then Resume Else Exit Sub
    End Sub
    i7 860| MB - GigaByte P55A-UD5| RAM - DDR3 A-Data 4x2 GB, 1,6 GHz| GK - Saphire HD 4870| zdroj - ENERMAX Liberty 400 | DVD-RW Pioneer DVR-109BK, Plextor PX-760A, Samsung SH-S183A | HDD - Patriot 128 GB SSD, WD Raptor 70 GB, 2 x Seagate 400 GB SATA/300

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. Podvod na uzivatele jmenem FUP
    Založil trodas v sekci fóra Sítě
    Odpovědí: 114
    Poslední příspěvek: 04.11.2006, 08:08
  2. Reklamacia neuspesna! = UZ UKONCENA -ZAZRAK !
    Založil AjsTi v sekci fóra Reklamace a §
    Odpovědí: 65
    Poslední příspěvek: 02.04.2006, 15:20
  3. Váš názor na starší notebook-viz více v dalším popisu...
    Založil Nvidia fanda v sekci fóra Notebooky
    Odpovědí: 37
    Poslední příspěvek: 15.01.2005, 21:48
  4. 2xRaptor36 v RAID0 @ Silicon Image 3112
    Založil Dr4k3 v sekci fóra Pevné disky a řadiče
    Odpovědí: 18
    Poslední příspěvek: 20.07.2004, 10:28

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •