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.