Ez a dokumentum egy előző változata!
Ez a feladat egy olyan makró létrehozását kérte, amely listázza az összes munkalap nevét egy adott munkafüzetben. Az alábbi makró bemutatja, hogyan lehet végrehajtani ezt a feladatot.
Sub MunkalapokListazasa() Dim ws As Worksheet Dim lista As String lista = "Munkalapok listája:" & vbCrLf For Each ws In ThisWorkbook.Worksheets lista = lista & ws.Name & vbCrLf Next ws MsgBox lista, vbInformation, "Munkalapok" End Sub
Sub MunkalapokListazasa()
egy eljárás, amely nem vár visszatérési értéket.Dim ws As Worksheet
- Egy változót deklarálunk, amely a munkafüzet minden egyes munkalapjára hivatkozik a ciklus során.Dim lista As String
- Egy szöveges változót hozunk létre, amelyben összegyűjtjük a munkalapok neveit.For Each
ciklus végigmegy a jelenlegi munkafüzet összes munkalapján.lista
változóhoz hozzáadjuk a munkalap nevét, majd egy új sort, hogy elkülönítsük a neveket.MsgBox
függvény segítségével megjelenítjük az összegyűjtött munkalapneveket egy üzenetablakban.A feladat egy olyan makró létrehozása, amely megtalálja és kiemeli a duplikált értékeket egy adott tartományban az Excel munkalapon.
Sajnos függvénnyel nem lehet olyan cella paramétereit módosítani, ami más mint a függvény meghívásának cellája. Ezért a használat előtt ki kell jelölni azt a tartományt amit vizsgálni szeretnénk.
Sub DuplikaltakKiemelése() Dim tartomány As Range Set tartomány = Selection Dim cell As Range Dim ellenőrző As Object Set ellenőrző = CreateObject("Scripting.Dictionary") ' A tartomány celláinak bejárása For Each cell In tartomány If Not cell.Value = "" Then If ellenőrző.Exists(cell.Value) Then ' Duplikált érték kiemelése piros háttérszínnel cell.Interior.Color = RGB(255, 0, 0) Else ellenőrző.Add cell.Value, Nothing End If End If Next cell End Sub
Set tartomány = Selection
utasítással.Scripting.Dictionary
objektumot hoz létre, amelyben csak különböző értékek tárolhatók.Ez a feladat egy makró létrehozását valósítja meg, amely képes dinamikusan kezelni és frissíteni egy tartomány méretét az aktív munkalapon.
Sub DinamikusTartomanyFrissites() Dim tartomany As Range Dim utolsoSor As Long, utolsoOszlop As Long Dim munkalap As Worksheet Set munkalap = ActiveSheet With munkalap utolsoSor = .Cells(.Rows.Count, "A").End(xlUp).Row utolsoOszlop = .Cells(1, .Columns.Count).End(xlToLeft).Column Set tartomany = .Range(.Cells(1, 1), .Cells(utolsoSor, utolsoOszlop)) End With tartomany.Select MsgBox "A dinamikus tartomány kijelölve: " & tartomany.Address, vbInformation, "Tartomány Frissítve" End Sub
utolsoSor
és utolsoOszlop
változókat használva megkeresi az utolsó nem üres cellát a „A” oszlopban és az 1. sorban, hogy meghatározza a tartomány határait.