• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru ActiveSheet hakkında

Katılım
16 Mayıs 2020
Mesajlar
327
Excel Vers. ve Dili
Office 365 Türkçe
Hayırlı akşamlar
Herhangibir kod yazarken sayfa adı yerine
mesala s1 adını kullanmak istiyorum hangi sayfa aktifse o sayfanın adı s1 olsun istiyorum
ama sayfa adı değişmeyecek sadece kodda öyle görecek
alttaki kodda hata veriyor neden acaba

Kod:
S1 = ActiveSheet.Name
Sheets("s1").Range("T14").Copy
Sheets("s1").Range("Q14").PasteSpecial xlPasteValues
 
Deneyiniz.

Set S1 = ActiveSheet
 
yine aynı Korhan bey
run time 9 subscript out of range hatası
Kod:
Set S1 = ActiveSheet
Sheets("s1").Range("T14").Copy
Sheets("s1").Range("Q14").PasteSpecial xlPasteValues
 
Merhaba,
İnceleyiniz...
Kod:
S1 = ActiveSheet.Name
Sheets(S1).Range("T14").Copy
Sheets(S1).Range("Q14").PasteSpecial xlPasteValues

Kod:
Set S1 = ActiveSheet
S1.Range("T14").Copy
S1.Range("Q14").PasteSpecial xlPasteValues
 
Bir nesneyi kısa bir tanımlama ile SET ettikten sonra artık o kısa tanımlama o nesne yerine kullanılmaktadır.

Tanımlamalar tek satırlık işlemlerde eziyet gibi görünebilir. Fakat uzun kodlama yapılarında epey kolaylık sağlıyor. Ayrıca yazım tekniğinize göre kodu okumak ve anlamak biraz daha kolaylaşıyor.

Alttaki örnekleri inceleyebilirsiniz. Hepsi aynı işlemi yapmaktadır..

C++:
Option Explicit

Sub Test_1()
    [Sheet1!A1] = "Deneme"
End Sub

Sub Test_2()
    Sheets("Sheet1").Range("A1") = "Deneme"
End Sub

Sub Test_3()
    Dim S1 As Worksheet
    
    Set S1 = Sheets("Sheet1")
    
    S1.Range("A1") = "Deneme"
End Sub

Sub Test_4()
    Dim S1 As Worksheet
    
    Set S1 = Sheets("Sheet1")
    
    S1.Range("A1") = "Deneme"
End Sub

Sub Test_5()
    Dim Rng As Range
    
    Set Rng = Sheets("Sheet1").Range("A1")
    
    Rng = "Deneme"
End Sub

Sub Test_6()
    Dim S1 As Worksheet
    
    Set S1 = Sheets("Sheet1")
    
    S1.Cells(1, 1) = "Deneme"
    S1.Cells(1, "A") = "Deneme"
End Sub

Sub Test_7()
    Dim S1 As Worksheet
    
    Set S1 = Sheets("Sheet1")
    
    S1.Cells(1, "A") = "Deneme"
End Sub

Sub Test_8()
    Dim Rng As Range
    
    Set Rng = Sheets("Sheet1").Cells(1, 1)
    
    Rng = "Deneme"
End Sub

Sub Test_9()
    Dim Rng As Range
    
    Set Rng = Sheets("Sheet1").Cells(1, "A")
    
    Rng = "Deneme"
End Sub
 
Bir nesneyi kısa bir tanımlama ile SET ettikten sonra artık o kısa tanımlama o nesne yerine kullanılmaktadır.

Tanımlamalar tek satırlık işlemlerde eziyet gibi görünebilir. Fakat uzun kodlama yapılarında epey kolaylık sağlıyor. Ayrıca yazım tekniğinize göre kodu okumak ve anlamak biraz daha kolaylaşıyor.

Alttaki örnekleri inceleyebilirsiniz. Hepsi aynı işlemi yapmaktadır..

C++:
Option Explicit

Sub Test_1()
    [Sheet1!A1] = "Deneme"
End Sub

Sub Test_2()
    Sheets("Sheet1").Range("A1") = "Deneme"
End Sub

Sub Test_3()
    Dim S1 As Worksheet
   
    Set S1 = Sheets("Sheet1")
   
    S1.Range("A1") = "Deneme"
End Sub

Sub Test_4()
    Dim S1 As Worksheet
   
    Set S1 = Sheets("Sheet1")
   
    S1.Range("A1") = "Deneme"
End Sub

Sub Test_5()
    Dim Rng As Range
   
    Set Rng = Sheets("Sheet1").Range("A1")
   
    Rng = "Deneme"
End Sub

Sub Test_6()
    Dim S1 As Worksheet
   
    Set S1 = Sheets("Sheet1")
   
    S1.Cells(1, 1) = "Deneme"
    S1.Cells(1, "A") = "Deneme"
End Sub

Sub Test_7()
    Dim S1 As Worksheet
   
    Set S1 = Sheets("Sheet1")
   
    S1.Cells(1, "A") = "Deneme"
End Sub

Sub Test_8()
    Dim Rng As Range
   
    Set Rng = Sheets("Sheet1").Cells(1, 1)
   
    Rng = "Deneme"
End Sub

Sub Test_9()
    Dim Rng As Range
   
    Set Rng = Sheets("Sheet1").Cells(1, "A")
   
    Rng = "Deneme"
End Sub
bu dosyada hergün yeni bir sayfa acıp diğer sayfaya geciyoruz o yüzden her sayfa ismi günün tarihi oluyor bu yüzden activesheet kullanmak zorundayım @Korhan Ayhan bey yarın demeyecen bunları aslında diğer uzun kodlarda calısıyor ama kıda kodda hata veriyor
 
Geri
Üst