رفع مشکل کد

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • alisabet

    • 2011/09/08
    • 159
    • 45.00

    رفع مشکل کد

    سلام علیکم :
    اساتید گرامی کد زیر را ملاحظه فرمائید این کد عمل نمیکند اما...


    Private Sub CommandButton1_Click()
    For Each c In userform1.Controls
    If c.Tag = 1 Then
    For i = 1 To 6
    If c.ControlTipText = i Then
    c.Caption = i
    End If
    Next i
    End If
    Next c
    End Sub
    کد زیر که بجز یک خط مشابه کد بالا است در مقدار تعیین شده بنحو صحیح عمل میکند



    Private Sub CommandButton1_Click()
    For Each c In userform1.Controls
    If c.Tag = 1 Then
    For i = 1 To 6
    If c.ControlTipText =5 Then
    c.Caption = i
    End If
    Next i
    End If
    Next c
    End Sub
    خواهشمند است اساتید محترم آموزش دهند که ایراد کد اول کجاست و چطوری حل میشود
  • abootorab

    • 2014/10/17
    • 351

    #2
    نوشته اصلی توسط alisabet
    سلام علیکم : اساتید گرامی کد زیر را ملاحظه فرمائید این کد عمل نمیکند اما...
    Private Sub CommandButton1_Click() For Each c In userform1.Controls If c.Tag = 1 Then For i = 1 To 6 If c.ControlTipText = i Then c.Caption = i End If Next i End If Next c End Sub
    کد زیر که بجز یک خط مشابه کد بالا است در مقدار تعیین شده بنحو صحیح عمل میکند
    Private Sub CommandButton1_Click() For Each c In userform1.Controls If c.Tag = 1 Then For i = 1 To 6 If c.ControlTipText =5 Then c.Caption = i End If Next i End If Next c End Sub
    خواهشمند است اساتید محترم آموزش دهند که ایراد کد اول کجاست و چطوری حل میشود
    با درود
    شما در کد اول در سطری که مشخص کرده اید در واقع دارید یک متغیر رشته ای رو با یک متغیر عددی مقایسه میکنید که این عمل امکان پذیر نیست و به خواسته شما عمل نمیکند، در کد دوم با اینکه شما یک عدد به ControlTipText نسبت داده اید اما با توجه به ماهیت ControlTipText که یک رشته می باشد در زمان اجرای کد، عددد شما بصورت یک رشته توسط کامپایلر خوانده می شود و در این حالت خواسته شما عملی می شود.
    و اما راه حل: شما می بایست در کد اول، سطر مورد نظر را (If c.ControlTipText = i Then) به یکی از دو حالت زیر اصلاح کنید. (در واقع طرفین تساوی می بایست از یک نوع متغیر باشند)
    کد PHP:
    If Val(c.ControlTipText) = i Then 
    یا
    کد PHP:
    If c.ControlTipText Trim(Str(i)) Then 

    کامنت

    • alisabet

      • 2011/09/08
      • 159
      • 45.00

      #3
      بسيار عالي - متشكر

      کامنت

      چند لحظه..