Çalışma Sayfası VBA adını kullanma


0

Excel'de bir çalışma sayfası için herhangi bir gösterge olup olmadığını merak ediyordum. Diyelim ki bir noktada Çalışma Sayfası Adı'nı kullanan VBA kodum var, sonra çalışma sayfasının adını değiştiriyorum, bu yüzden kodumda da bu adı değiştirmem gerekiyor. Bir çalışma sayfası için gösterge kullanmanın bir yolu var, bu yüzden kodumda bu adı değiştirmek zorunda kalmayacağım? Veya kodunu bir çalışma sayfasını adını kullanmadan kullanmak için başka bir yolu?

Yardımın için teşekkürler.


Dizini de ( Workbook.Worksheets(1)) kullanabilirsiniz , ancak bu da değişebilir.
Máté Juhász

Çalışma sayfasının kod adı ne olacak?
Gary'nin Öğrenci

Faaliyet Sayfası mı?
yass

3
Seçili olan sayfaya atıfta bulunmak için workbook.activesheet sayfasını da kullanabilirsiniz. Çalışma sayfasının adını orada depolamak için bir genel değişken ve kodunuzun geri kalanında genel değişkeni kullanabilirsiniz. Çalışma sayfanızın adı değişirse, makroyu bir yerde buna göre düzenleyebilirsiniz.
LPChip,

Çalışma Sayfalarını (0), Çalışma Sayfalarını (1) veya Sayfa (0), Sayfa (1) ... Ayrıca, 0, 1 sekme / dizin konumlarını da kullanabilirsiniz.
ejbytes

Yanıtlar:


1

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.