Note: The other languages of the website are Google-translated. Back to English

 Açılır liste nasıl oluşturulur, ancak Excel'de farklı değerler nasıl gösterilir?

Excel çalışma sayfasında, Veri Doğrulama özelliği ile hızlı bir şekilde bir açılır liste oluşturabiliriz, ancak açılır listeye tıkladığınızda hiç farklı bir değer göstermeyi denediniz mi? Örneğin, Sütun A ve Sütun B'de aşağıdaki iki sütun verisine sahibim, şimdi, Ad sütunundaki değerlerle bir açılır liste oluşturmam gerekiyor, ancak oluşturulan açılır listeden adı seçtiğimde, ilgili Sayı sütunundaki değer, aşağıda gösterilen ekran görüntüsü olarak görüntülenir. Bu makale, bu görevi çözmek için ayrıntıları tanıtacaktır.

doc açılır farklı değerler 1

Açılır liste oluşturun, ancak açılır liste hücresinde farklı bir değer gösterin


Açılır liste oluşturun, ancak açılır liste hücresinde farklı bir değer gösterin

Bu görevi bitirmek için lütfen aşağıdaki adım adım yapın:

1. Açılır listede kullanmak istediğiniz hücre değerleri için bir aralık adı oluşturun, bu örnekte, açılır listeye ad açılır menüsünü gireceğim. isim Kutusutuşuna basın ve ardından tuşuna basın. Keşfet anahtar, ekran görüntüsüne bakın:

doc açılır farklı değerler 2

2. Ardından açılır listeyi eklemek istediğiniz hücreleri seçin ve Veri > veri Doğrulama > veri Doğrulama, ekran görüntüsüne bakın:

doc açılır farklı değerler 3

3. In veri Doğrulama iletişim kutusunun altında Ayarlar sekmesini seçin Liste itibaren izin vermek açılır ve ardından tıklayın doc açılır farklı değerler 5 Açılır değerler olarak kullanmak istediğiniz Ad listesini seçmek için Kaynak Metin kutusu. Ekran görüntüsüne bakın:

doc açılır farklı değerler 4

4. Açılır listeyi ekledikten sonra, lütfen aktif sayfa sekmesine sağ tıklayın ve seçin Kodu Görüntüle bağlam menüsünden ve açılan Uygulamalar için Microsoft Visual Basic penceresinde, aşağıdaki kodu boş Modüle kopyalayıp yapıştırın:

VBA kodu: Açılır listeden farklı bir değer görüntüleyin:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    selectedNa = Target.Value
    If Target.Column = 5 Then
        selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)
        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        End If
    End If
End Sub

doc açılır farklı değerler 6

not: Yukarıdaki kodda numara 5 içinde Target.Column = 5 ise komut dosyası, açılır listenizde bulunan sütun numarasıdır, "yıkılmak" bunda selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("dropdown"), 2, False) kod, 1. adımda oluşturduğunuz aralık adıdır. Bunları ihtiyaçlarınıza göre değiştirebilirsiniz.

5. Ardından bu kodu kaydedin ve kapatın, şimdi açılır listeden bir öğe seçtiğinizde, aynı hücrede göreceli olarak farklı bir değer görüntülenir, ekran görüntüsüne bakın:

doc açılır farklı değerler 7


Demo: Açılır liste oluşturun ancak Excel'de farklı değerler gösterin

Kutools for Excel: 300'den fazla kullanışlı Excel eklentisi ile 30 günde sınırlama olmaksızın ücretsiz deneyin. Hemen indirin ve ücretsiz deneme!

 


En İyi Ofis Üretkenliği Araçları

Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır

  • Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
  • Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
  • Hücreleri / Satırları / Sütunları Birleştirme Veri kaybetmeden; Bölünmüş Hücre İçeriği; Yinelenen Satırları / Sütunları Birleştirme... Yinelenen Hücreleri Önleyin; Aralıkları Karşılaştır...
  • Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
  • Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
  • Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
  • Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
  • Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
  • 300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
kte sekmesi 201905

Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
  • Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
  • Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
ofis tabanı

 

Yorumları sıralama ölçütü
Yorumlar (42)
Henüz derecelendirme yok. İlk değerlendiren siz olun!
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu farklı sayfalarda yapılabilir mi? Yani, 1. sayfada açılır menü ve 2. sayfada aralık. Bunu nasıl kodlamam gerekiyor? Şimdiden teşekkürler. Tina.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aynı çalışma sayfasında farklı değerler döndüren birden fazla açılır menü yapmak istersem ne olur? Bana iki veya daha fazla kodlama örneği gösterebilir misiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Lee Ann

If'den EndIf'e kodu kopyalayıp yapıştırırsanız ve # ve Tablo sütununu değiştirirseniz, çalışması gerekir:


Sub Worksheet_Change(Aralık Olarak ByVal Hedefi)
seçilenNa = Hedef.Değer
Target.Column = 5 ise
selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("dropdown"), 2, False)
IsError(selectedNum) Değilse Sonra
Target.Value = seçiliNum
Eğer son
Eğer son
Target.Column = 9 ise
selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown1"), 2, False)
IsError(selectedNum) Değilse Sonra
Target.Value = seçiliNum
Eğer son
Eğer son
End Sub

Bunun doğru yol olduğunu söylemiyorum ama test versiyonumda çalıştı. Excel 2013 kullanıyorum
Bu yorum sitedeki moderatör tarafından en aza indirildi
Sadece denedim. Ve işe yaradı!! Teşekkür ederim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba, yardım, işe yaramıyor, 2 sütun için tüm kodları buraya yapıştırabilir misiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Tony: Doğru, ancak bir sonraki adım, aşağıdakileri teşvik etmekten kaçınmaktır: a) DRY İlkesinin ihlal edilmesi (ve dolayısıyla artması: a.1) hata olasılığı ve bunları düzeltme maliyetleri ve a.2) gelecekteki olası değişikliklerin / geliştirmelerin maliyetleri) yinelenen kodu azaltmak için nasıl "yeniden düzenlenebileceğini" göstererek "Kopyala-Yapıştır" programlamayı teşvik etmemek ve b) Adlandırılmış Sabitleri bildirerek ve kullanarak sabit kodlanmış hazır bilgi ("sihirli" "sayı" / "dize") sabitleri bir derleyici hatasını tetiklemeden yanlış yazmak çok daha zordur. İki kopyala-yapıştır kod bloğu arasında farklı olan tek şey, sütun #'ler ve aralık adlarıdır, bu nedenle mümkün olduğunca diğer her şey kopyalanmamalıdır, bu nedenle bunun yerine kod örneğin şöyle olmalıdır:

' -- NOT: Global bildirimler Modülünde "EmptyString" bildirin.
Public Const EmptyString as String = ""

' -- Sütun #ları. NOT: Uygulamada, örneğin, "Col5Header", örneğin, "ProductID" ve "Col9Header", örneğin, "SalesID" olacaktır.
Özel Const Col5HeaderColumnNumber As Integer = 5
Özel Const Col9HeaderColumnNumber As Integer = 9

' -- Sütunların Açılır Listelerinin Aralık Adları
String = "col5HeaderDropDownRangeName" olarak Özel Const Col5HeaderDropDownRangeName
String = "col9HeaderDropDownRangeName" olarak Özel Const Col9HeaderDropDownRangeName

Alt Çalışma Sayfası_Değiştir _
( _
Aralık Olarak ByVal Hedefi _
)

-- BEGIN Uygulanabilir = sütunları için, açılır listelerden seçilen açıklama için kimliği çekin.
Dize olarak dropDownListRangeName'i karartın
dropDownListRangeName = EmptyString
Case Target.Column'u seçin
Case Col5HeaderColumnNumber
dropDownListRangeName = Col5HeaderDropDownRangeName
Case Col9HeaderColumnNumber
dropDownListRangeName = Col9HeaderDropDownRangeName
Seçimi Sonlandır -- Case Target.Column
Eğer (dropDownListRangeName <> EmptyString) O zaman
SelectedId'yi String olarak karart
selectedId = Application.VLookup(selectedNa, ActiveSheet.Range(dropDownListRangeName), 2, False)
Değilse IsError(selectedId) O zaman
Target.Value = seçili kimlik
End If ' -- Not IsError(selectedId)
End If ' -- (dropDownListRangeName <> EmptyString)
-- END Uygulanabilir =sütunlar için, açılır listelerden seçilen açıklama için kimliği çekin.

End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ayrıntılı bir soru yazmaktan daha sinir bozucu bir şey, yalnızca onu uçurmak için. İnsanınızı doğrulamak için yanlış 6 haneli kodu yazarsanız, gönderilen mesajı siler. Bunu düzeltmek isteyebilir. Şimdi yorumum şu: Videoda ve yazılı talimatlarda gösterdiğinizin aynısını yapmaya çalıştım ve listeden bir isim seçtiğimde tek aldığım numara değil isim oluyor. Ayrıca, veri doğrulamanın seçenekleri yalnızca listede bulunanlarla sınırlaması gerektiğinden, bu nasıl çalışıyor? Bu sistemi nasıl kandırıyor? Geçmişte her zaman bir düğmeye veya bir kısayola vba kodu atamak zorunda kaldım, bu kod nasıl etkinleştirilir? Çalıştığından emin olmak için nasıl test edersiniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çalışma kitabında ayrı bir sayfaya veri eklemek istediğinizde formül nasıl çalışır? Verileri gizlemek istiyorum.
Bu yorum sitedeki moderatör tarafından en aza indirildi
burayı değiştir kardeşim
selectedNum = Application.VLookup(selectedNa, Worksheets("SayfaAdınız").Range("dropdown"), 2, False)
Bu yorum sitedeki moderatör tarafından en aza indirildi
"SayfaAdınız", veri aralığını içeren sayfaya veya açılan listeyi kullanmak istediğim sayfaya atıfta bulunuyor mu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çalışma kitabında verileri ayrı bir sayfada/sekmede listelemek istediğinizde formül nasıl çalışır?
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu, Excel'in güncel olmayan güncel sürümlerinde çalışmaz. Veri doğrulama daha sonra liste artık vba'da görünmüyor, çünkü bir excel nesnesi zaten birden çok kez denedi ve görünmüyor.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu örnekte, 5'teki hücrelerin her birinde bir değere bakmasını, ancak değeri 6'daki bitişik hücreye koymasını istiyorsanız ne olur?
Bu yorum sitedeki moderatör tarafından en aza indirildi
E1'de, seçilen değere göre Açılır listenin kaynağına bir referans/bağlantı oluşturmak istersem, kodun Nasıl Değiştirilmesi Gerekir?
Yarar şu olacaktır: Açılır liste kaynağında bir değişiklik olması durumunda (örneğin "Henrik" => "Hendrik", değişiklik otomatik olarak E1'e yansıtılacaktır.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bunun google sayfalarında çalışmasını nasıl sağlayacağını bilen var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
açılır listeden birden fazla seçenek seçmek istiyorum.
sonuç şöyle: AA1001,BB1002
bu mümkün mü?
Bu yorum sitedeki moderatör tarafından en aza indirildi
bir çözüm buldun mu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
En son bilgilere göre, en iyi hoca, cuál sería el código? Teşekkürler.
Bu yorum sitedeki moderatör tarafından en aza indirildi
izquierda'nın cesaretinden başka bir şey yok
Bu yorum sitedeki moderatör tarafından en aza indirildi
Özel Alt Çalışma Alanı_Değiştir (ByVal Target As Range)
seçilenNa = Hedef.Değer
Target.Column = 5 ise

Sheets("Doğrulanamayanlar listesi").Etkinleştir
selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("dropdown"), 2, False)
Sheets("Nombre de la hoja en donde estas trabajando").Etkinleştir
IsError(selectedNum) Değilse Sonra
Target.Value = seçiliNum
Eğer son
Eğer son
End Sub
Bu yorum sitedeki moderatör tarafından en aza indirildi
Birisi değerin sağdan sola nasıl aranacağını biliyor
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aynı açılır menüyü birden fazla sütunda kullanmam gerekiyor, kod ne olurdu?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba!
Bu gerçekten faydalı! Teşekkür ederim!
Hücrenin otomatik olarak güncellenmediği durumda veya yenileme işlevini kullanırken çalışıyorum. Değeri göstermesi için başka bir hücreye tıklamam ve ardından işteki hücreye geri tıklamam gerekiyor.
Şu anda Office Standard 2019'da çalışıyorum. Bu sorunun kullandığım excel sürümüyle ilgili olup olmadığını bilen var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba,
Listeyi tanımlıyor ve aynı sayfada açılır menüyü oluşturuyorsak, kod iyi çalışıyordu.
Ancak bir sayfada değerler ve kodlar listesini ve başka bir sayfada oluşturulan açılır listeyi tanımlamayı nasıl başarabiliriz?
Bu aynı kod, bu satırda gösterildiği gibi çalışmıyor ve hata veriyor ("selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)").
Ayrıca, bir sayfada Kimlik ve Adlar ile tanımlanmış birden fazla listem varsa ve başka bir sayfada bir açılır değerin başka bir açılır menüde seçilen değere bağlı olduğu birden fazla açılır listem varsa gibi bir gereksinimim var.

Umarım sorgumu anlamışsınızdır.

Lütfen bu sorunun çözümünde bana yardımcı olun.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu bana çok yardımcı oldu, teşekkürler. Masam liste kutumdan farklı bir sayfada olduğundan, bunu gerçekleştirmek ve ekranın yanıp sönmesini önlemek için birkaç satır kod ekledim.

Application.ScreenUpdating = Yanlış
Sheets("SheetWithTableOnIt").Activate

Sheets("SheetWithDropDownListOnIt").Activate
Application.ScreenUpdating = True
Bu yorum sitedeki moderatör tarafından en aza indirildi
bu kodları tam olarak nereye eklediniz?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Derleme hatası alıyorum: Kodu kullanmaya çalıştığımda "If Trarget.Column = 6 Then" satırında sözdizimi hatası? Nedeni hakkında bir fikriniz var mı?
Bu yorum sitedeki moderatör tarafından en aza indirildi
Çalışıyor ama bir dosyadan çıkıp tekrar açtığınızda çalışmıyor... .xls olarak sadece .xlsm olarak kaydedilemiyor bunun için bir çözüm var mı? teşekkürler
Bu yorum sitedeki moderatör tarafından en aza indirildi
Merhaba Marko, Kodu çalışma kitabınıza kopyalayıp yapıştırdıktan sonra, dosyayı kaydettiğinizde, Excel Makro Etkin Çalışma Kitabı formatında kaydetmelisiniz, lütfen deneyin, teşekkür ederim!
Buraya henüz hiç yorum yapılmamış
Daha Çok
Lütfen yorum yazın
Misafir olarak yayınlama
×
Bu gönderiyi değerlendirin:
0   Karakterler
Önerilen Konumlar

Bizi takip et

Telif Hakkı © 2009 - www.extendoffice.com. | Tüm hakları Saklıdır. Tarafından desteklenmektedir ExtendOffice. | | | Site Haritası
Microsoft ve Office logosu, Microsoft Corporation'ın Amerika Birleşik Devletleri ve / veya diğer ülkelerdeki ticari markaları veya tescilli ticari markalarıdır.
Sectigo SSL ile korunmaktadır