با سلام و وقت بخیر خدمت تمامی بزرگواران
یک یوزرفرم طراحی کردیم که دارای چند textbox و combobox بوده و دوتا از combobox های آن بهم وابسته هستن (مخاطب ابتدا استان رو انتخاب میکنه و سپس بر اساس انتخاب استان، شهرستانهای اون استان در combobox بعدی فعال میشه)
برای فعالسازی combobox مرتبط با شهرستان، اومدیم اسامی شهرستانهای هر استان رو در ستونها مختلف نوشتیم (بطور مثال در صفحهای بنام pishnevis و در ستون A اسامی شهرستانهای استان آذربایجان شرقی رو نوشتیم و ..)
بعد از اون هم با استفاده از قسمت define name هر کدوم رو به اختصار معرفی کردیم.
وقتی یوزرفرم بالا میاد و صفحه pishnevis فعال و active هست، این combobox کار میکنه ولی وقتی وارد sheet دیگه میشم متاسفانه از کار میفته
با اینکه در رفرنس دهی هم محدوده همراه با نام sheet پیشنویس بیان شده
نمونه کد هم بصورت پایین هست
یک یوزرفرم طراحی کردیم که دارای چند textbox و combobox بوده و دوتا از combobox های آن بهم وابسته هستن (مخاطب ابتدا استان رو انتخاب میکنه و سپس بر اساس انتخاب استان، شهرستانهای اون استان در combobox بعدی فعال میشه)
برای فعالسازی combobox مرتبط با شهرستان، اومدیم اسامی شهرستانهای هر استان رو در ستونها مختلف نوشتیم (بطور مثال در صفحهای بنام pishnevis و در ستون A اسامی شهرستانهای استان آذربایجان شرقی رو نوشتیم و ..)
بعد از اون هم با استفاده از قسمت define name هر کدوم رو به اختصار معرفی کردیم.
وقتی یوزرفرم بالا میاد و صفحه pishnevis فعال و active هست، این combobox کار میکنه ولی وقتی وارد sheet دیگه میشم متاسفانه از کار میفته
با اینکه در رفرنس دهی هم محدوده همراه با نام sheet پیشنویس بیان شده
نمونه کد هم بصورت پایین هست
کسی میتونه دلیل عدم کارکرد رو توضیح بده
Private Sub ComboBox2_Change()
On Error Resume Next
Dim i As Integer
Dim item As String
i = 2
Me.ComboBox3.Value = ""
While Me.ComboBox2.Value <> ThisWorkbook.Worksheets("pishnevis").Cells(i, 1) And i < 33
i = i + 1
Wend
item = "a_" + CStr(i)
With Me.ComboBox3
.RowSource = ThisWorkbook.Worksheets("pishnevis").Range(item).A ddress
End With
End Sub
Private Sub ComboBox2_Change()
On Error Resume Next
Dim i As Integer
Dim item As String
i = 2
Me.ComboBox3.Value = ""
While Me.ComboBox2.Value <> ThisWorkbook.Worksheets("pishnevis").Cells(i, 1) And i < 33
i = i + 1
Wend
item = "a_" + CStr(i)
With Me.ComboBox3
.RowSource = ThisWorkbook.Worksheets("pishnevis").Range(item).A ddress
End With
End Sub