کدهای به نظر یکسان ولی یک جواب نمیده

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • علی فاطمی

    • 2014/02/17
    • 523
    • 51.00

    کدهای به نظر یکسان ولی یک جواب نمیده

    با سلام
    اگر دوستان لطف کنن و فایل پیوست رو ببینن یک تکست باکس و دوتا کامن باتن وجود داره
    کد:
    Private Sub CommandButton1_Click()
    Sheets(TextBox1.Text).Select
    Sheets(TextBox1.Text).Range("A1") = "ok"
    End Sub
    کد:
    Private Sub CommandButton2_Click()
    Dim a
    a = Application.WorksheetFunction.Count(Sheet1.Range("a1:a10"))
    Sheets(a).Select
    Sheets(a).Range("A1") = "Nok"
    End Sub

    توی تکست باکس عدد 1 رو وارد کنید و کامن باتن یک رو بزنید. در شیتی که با عدد 1 نام گذاری شده ودر سلول a1 کلمه ok ثبت میشه
    از طرفی دستور count که در کامن باتن 2 قرار داره هم جوابش میشه یک . از نظر من مبتدی دوتا دستور باید یه خروحی داشته باشند ولی کامن بات 2 اجرا نمیشه و ارور داره . لطفا راهنمایی بفرمائید.
    ممنون از توجه شما.
    فایل های پیوست شده
    در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان



  • mokaram
    مدير تالار اکسل و بانک اطلاعاتی

    • 2011/02/06
    • 1805
    • 74.00

    #2
    مشکل شما تو فرمول زیر هست
    کد PHP:
    Application.WorksheetFunction.Count(Sheet1.Range("a1:a10")) 
    تو شیت یک مقداری نیست بنابراین a برابر با صفر میشه و تو خط بعدی هم نوشتید :
    کد PHP:
    Sheets(a).Select
    Sheets
    (a).Range("A1") = "Nok" 
    که شیت صفر وجود نداره و ارور میده
    در ضمن بهتر تو فرمول خط اول به جای Count از counta استفاده کنید

    کامنت

    • علی فاطمی

      • 2014/02/17
      • 523
      • 51.00

      #3
      نوشته اصلی توسط M_R_M
      مشکل شما تو فرمول زیر هست
      کد PHP:
      Application.WorksheetFunction.Count(Sheet1.Range("a1:a10")) 
      تو شیت یک مقداری نیست بنابراین a برابر با صفر میشه و تو خط بعدی هم نوشتید :
      کد PHP:
      Sheets(a).Select
      Sheets
      (a).Range("A1") = "Nok" 
      که شیت صفر وجود نداره و ارور میده
      در ضمن بهتر تو فرمول خط اول به جای Count از counta استفاده کنید
      ممنون از توجه شما
      فرمایش شما صحیحه . حالا اگر توی سل a1 شیت 1 عدد 1 رو بزاریم دستور count قطعا باید یک بشه . بعد از اون باید بره توی شیتی که اسمش 1 هستش nok رو قرار بده ولی nok رو توی a1 شیت1 میزاره ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
      در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان



      کامنت

      • Ali Parsaei
        مدير تالارتوابع اکسل

        • 2013/11/18
        • 1519
        • 71.67

        #4
        نوشته اصلی توسط علی فاطمی
        ممنون از توجه شما
        فرمایش شما صحیحه . حالا اگر توی سل a1 شیت 1 عدد 1 رو بزاریم دستور count قطعا باید یک بشه . بعد از اون باید بره توی شیتی که اسمش 1 هستش nok رو قرار بده ولی nok رو توی a1 شیت1 میزاره ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
        به دليل اين است که نوع متغيير درست تعريف نشده، شما بايد نوع متغيير را از نوع string بگذاريد،
        ببينيد (1)sheets ارجاع به اولين شيت کار برگ است ولي ("1")sheets ارجاع به شيتي با نام يک است، حال اگر نوع متغيير را درست تعريف نکنيد وقتي مي نويسيد (sheets(a اين دو تا جابجا ممکن است بشود.
        sigpic

        کامنت

        • علی فاطمی

          • 2014/02/17
          • 523
          • 51.00

          #5
          نوشته اصلی توسط علي پارسا
          به دليل اين است که نوع متغيير درست تعريف نشده، شما بايد نوع متغيير را از نوع string بگذاريد،
          ببينيد (1)sheets ارجاع به اولين شيت کار برگ است ولي ("1")sheets ارجاع به شيتي با نام يک است، حال اگر نوع متغيير را درست تعريف نکنيد وقتي مي نويسيد (sheets(a اين دو تا جابجا ممکن است بشود.
          ممنون از توجه شما.
          در دنیا فقط یک نفر وجود دارد که باید از او بهتر باشید و آن کسی نیست جز گذشته خودتان



          کامنت

          • Amir Ghasemiyan

            • 2013/09/20
            • 4522
            • 100.00

            #6
            نوشته اصلی توسط علی فاطمی
            ممنون از توجه شما.
            دوست عزيز همونطور كه قبلا گفته شد شما بايد از دستور couta استفاده كنيد. count اعداد رو ميشماره نه خانه هاي پرشده رو.بقيه كدتون درسته

            کامنت

            چند لحظه..