Bir birleşik giriş kutusu kullanarak açılır listeye yazarken otomatik tamamlamaya izin vermek için aşağıdaki VBA kodunu kullanıyorum.
Bu kod, VBA kodunun uygulandığı sayfalardaki "Geri Al" ve "Yinele" işlevlerini devre dışı bırakır. VBA kodu bu işlevlere izin verecek şekilde değiştirilebilir mi?
Özel Alt Çalışma Sayfası_SelectionChange (ByVal Target As Range)
'Güncelleme Extendoffice: 2018 / 9 / 21
OLEObject Olarak xCombox'ı Karartın
xStr'yi Dize Olarak Kıs
Çalışma Sayfası Olarak Dim xWs
xArr'ı karart
xW'leri ayarla = Application.ActiveSheet
On Error Resume Next
xCombox = xWs.OLEObjects("TempCombo") olarak ayarlayın
xCombox ile
.ListFillRange = ""
.LinkedCell = ""
.Görünür = Yanlış
İle bitmek
Target.Validation.Type = 3 ise
Target.Validation.InCellDropdown = Yanlış
İptal = Doğru
xStr = Target.Validation.Formula1
xStr = Sağ(xStr, Len(xStr) - 1)
xStr = "" ise, Sub'dan Çıkın
xCombox ile
.Visible = True
.Sol = Hedef.Sol
.Üst = Hedef.Üst
.Genişlik = Hedef.Genişlik + 5
.Yükseklik = Hedef.Yükseklik + 5
.ListFillRange = xStr
.ListFillRange = "" ise
xArr = Böl(xStr, ",")
Me.TempCombo.List = xArr
Eğer son
.LinkedCell = Hedef.Adres
İle bitmek
xCombox.Etkinleştir
Me.TempCombo.DropDown
Eğer son
End Sub
Özel Alt TempCombo_KeyDown(MSForms.ReturnInteger Olarak ByVal KeyCode, Tamsayı Olarak ByVal Shift)
Vaka Anahtar Kodu Seçin
vaka 9
Application.ActiveCell.Offset(0, 1).Etkinleştir
vaka 13
Application.ActiveCell.Offset(1, 0).Etkinleştir
Select End
End Sub