Bir Aralığı Adlandırmayı Basitleştirin - Excel İpuçları

Jac soruyor:

Tablolar oluşturuyorum, aynı sayıda sütun ama her seferinde farklı sayıda satır. Bir makroda ihtiyacım olan hesaplamaları yapmak için son satırı ve son sütunu sorunsuz bir şekilde belirleyebiliyorum. Şimdi amaç, bu makroya tabloyu adlandırma olasılığını (her seferinde aynı isimle) eklemektir, ancak makroda çalışma sayfasıyla ilişkili hücre aralığı R1C1: RxCy'dir, aralığı nasıl yazacağımı bilmiyorum RC sistemiyle lastrow ve lastcolumn değerlerini (tablonun son sütununu ve satırını temsil eden) kullanarak (mümkün olup olmadığını bile bilmiyorum).

Çoğu VBA programcısı, Names.Add yöntemini kullanan aşağıdaki yöntemi kullanır.

Sub Method1() LastRow = Cells(65536, 1).end(xlUp).row LastCol = Cells(1, 255).End(xlToLeft).column MyArea = "='" & ActiveSheet.Name & "'!R1C1:R" & LastRow & "C" & LastCol ActiveWorkbook.Names.Add Name:="TheData", RefersToR1C1:=MyArea End Sub

Aralık adı atamanın daha kolay bir yöntemi vardır. Aşağıdaki dört ifadenin tümü eşdeğerdir. Son ikisi çok daha kolay:

ActiveWorkbook.Names.Add Name:="TheData", RefersToR1C1:="=Sheet1!R1C1:R10C5" ActiveWorkbook.Names.Add Name:="TheData", RefersTo:="=Sheet1!A1:E10" Range("A1:E10").Name = "TheData" Cells(1, 1).Resize(10, 5).Name = "TheData"

Jac - Son satırı kullanım için uyarlardım:

Sub Method2() LastRow = Cells(65536, 1).end(xlUp).row LastCol = Cells(1, 255).End(xlToLeft).column Cells(1, 1).Resize(LastRow, LastCol).Name = "TheData" End Sub

Aralık adları atamak için bu kısayolu Bovey & Bullen'in Excel 2002 VBA Programmer's Reference kitabından öğrendim. Bu kitabın 2002 versiyonu, 2000 versiyonu etrafında daireler çizmektedir. Param için, herhangi bir Excel VBA programcısının sağ elinde o kitaba ihtiyacı var. Kopyam dikenli ve asla ulaşılamaz.

Ilginç makaleler...