نمایش اطلاعات مرتبط با Combo box در Text box

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mortezataheri

    • 2017/01/05
    • 16

    [حل شده] نمایش اطلاعات مرتبط با Combo box در Text box

    سلام
    من نام کارمندان را در ستون "A" تحت عنوان cboName و شماره کارمندی انها را در ستون "B" در sheet1 دارم. حالا میخوام وقتی در فرم اسم کارمندی رو از cboName انتخاب کردم شماره کارمندی اون شخص در txtEmployeeNumber نمایش داده شود.

    اگر کد زیر رو در UserForm Module قرار بدم کارنمیکنه اما دکمه های کنترل مثل OK,Clear و Close کارمی کنند.
    کد:
    Private Sub cboName_Change()
        Dim EName As String
        Dim Row As Integer
        EName = cboName.Value
        With Application.WorksheetFunction
            Row = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
            txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
            txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
        End With
    
    End Sub
    ام اگر این کد رو با دبل کلیک کردن فرم در قسمت مخصوص کد نویسی قرار بدم، کد کار خودشو انجام میده ولی کنترل ها دیگه کار نمی کنند و از خط زیر اشکال می گیره
    Run Time Error 1004
    Unable to get the match property of worksheet function class
    کد:
    Row = .Match(EName, Sheets("sheet1").Range("A2:A100"), 0)
    فایل های پیوست شده
  • rasools13

    • 2017/01/20
    • 360
    • 80.00

    #2
    سلام وقتی از دکمه clear استفاده میکنید چون مقدار cboName برابر "" می شود با اجرا شدن متد Sub cboName_Change() تابع Match. خطا میده
    برای رفع این مشکل کافیه یک شرط برای اجرا شدن متد در زمان "" نبودن مقدار cboName بزارین مشکل حل می شه
    کد ذیل
    کد PHP:
    Private Sub cboName_Change()
        
    Dim EName As String
        Dim Row 
    As Integer
        EName 
    Me.cboName.Text
        
    If EName <> "" Then
            With Application
    .WorksheetFunction
                Row 
    = .Match(ENameSheets("sheet1").Range("A2:A100"), 0)
                
    txtEmployeeNumber.Text = .Index(Sheets("sheet1").Range("B2:B100"), Row)
                
    txtShift.Text = .Index(Sheets("sheet1").Range("C2:C100"), Row)
            
    End With
        End 
    If
    End Sub 
    فایل پیوست رو بررسی کنید به درستی کار میکنه
    فایل های پیوست شده
    [CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
    [COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
    [/CENTER]

    کامنت

    • mortezataheri

      • 2017/01/05
      • 16

      #3
      سلام دوست گرامی
      چون تاپیک قبلی رو حل شد تیک زدم ناچار شدم تاپیک جدید باز کنم
      از کمک شما ممنونم

      کامنت

      چند لحظه..