Bağlama bağlı olarak, birkaç seçeneğiniz vardır.
1. Bir Sabit Kullanın
Kodunuzun üstünde bir sabit tanımlayabilirsiniz, o zaman sabitin kullanıldığı her noktayı etkilemesi için sadece sabit bir değişiklik yapmanız gerekir. Kullanmak yerine:
Set shtSheet = sheets("Sheet1")
Kullanabilirsin:
Set shtSheet = Sheets(csSource)
boyunca.
Kullanarak bir sabit beyan edin Const <name> as <type> = <value>
Sub WorksheetVar()
Const csSheetName As String = "Test"
Sheets(csSheetName).Range("A1").Value = 1
Sheets(csSheetName).Range("A2").Value = 2
Sheets(csSheetName).Range("A3").Value = 3
End Sub
Değerin kodda ayarlanması gereğinden kurtulmaz, ancak kullanılan tüm yerlerin kodunu aramak yerine kodunu daha kolay güncellemenizi sağlar.
2. Dizin numaralarını kullanın
Her çalışma sayfasında, bir tablonun adı ve normalde çalışma sayfasının sekmelerdeki konumu bulunur. Sayfa adı değiştirilse bile bu aynı kalacaktır, ancak sekme sırası değiştirildiyse değişecektir.
3. Bir değişken kullanın
Bir hücreden, başka bir makrodan, bir giriş kutusundan vb. Bir değişken alabilirsiniz. Çalışma sayfasının adını kodunuza aktarmak için bunu kullanabilirsiniz.
4. Sayfanın nesne adını kullanın
Çalışma sayfasının görünen adından bağımsız olarak, her sayfada bir nesne adı vardır, normalde ilk oluşturulduğunda sahip oldukları addır. Soldaki proje gezginine bakarsanız, her bir sayfanın 'Sayfa1 (Sayfa1)' gibi bir şey olarak listelendiğini göreceksiniz. Sayfa1'in adını Test olarak değiştirdiyseniz göreceksiniz Sheet1 (Test). Değişmeyen nesne adını, sayfaya bir değişkenmiş gibi gerektiği şekilde referans vermek için kullanabilirsiniz.
Sub Sheetname()
Sheet1.Range("A1").Value = 1
Sheet1.Range("A2").Value = 2
End Sub
Şahsen bu yöntemi sevmiyorum, hangi sayfanın hangisi olduğu konusunda kafa karıştırmak kolaydır, ama kesinlikle sizin için bir seçenek.
Workbook.Worksheets(1)) kullanabilirsiniz , ancak bu da değişebilir.