Announcement

Collapse

ยินดีต้อนรับสู่ Excel Expert Training Forum

กฏกติกาของฟอรัม: แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก - ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม - เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบ - ห้ามใช้คำว่า อ่ะ คับ คำผวน - ตั้งชื่อแฟ้มเป็นภาษาอังกฤษให้สื่อถึงปัญหา - อย่าระบุชื่อให้คนใดเป็นผู้ตอบ - งดให้ความร่วมมือหรือช่วยกระทู้ที่ละเมิดกฏของฟอรัม
See more
See less

Select/unselect option button

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Select/unselect option button

    คือผมต้องการให้ VBA เลือก ปุ่ม option button ทีละปุ่มจบครบ 5 ปุ่มหลัก (Payments, Recovery Received, ..., Claim Number)
    ซึ่งผม ได้ลองเขียน แบบนี้ ครับ >> ActiveSheet.Shapes("otbPay").ControlFormat.Value = 1
    แต่ปรากฏว่าใช้ไม่ได้

    จึงอยากสอบถามถึง code ว่าควรเขียนอย่างไรให้ Macro เลือกปุ่มให้ครับ
    Attached Files

  • #2
    ปกติ control มีไว้ให้ user เป็นผู้เลือกเพื่อเป็นทางเลือกในการสั่งการ vba แต่ละชุด
    ล้วทำไมถึงจะให้ vba เลือกให้ครับ?

    แล้วที่ว่าให้เลือก ทีละปุ่มนี่เลือกแล้วยังไงต่อ?

    คำสั่งให้ optionbutton ถูกเลือกลองใช้ ActiveSheet.Shapes("otbPay").ControlFormat.Value = xlOn ดูครับ

    Comment


    • #3
      ใช่ ครับ ปกติไว้ให้ user เลือก แต่ ในกรณีนี้ user ต้องเลือกทีละปุ่ม (ทำรายการทีละครั้ง) แล้วก็กดปุ่ม Get data, แล้ว ก็ copy ข้อมูลไปใส่ในอีกไฟล์นึง
      ซึ่งต้องทำอย่างนี้ประมาณ 60-80 ครั้ง แต่ละรอบใช้เวลาเกือบ 5 นาที เพราะเป็นการดึงข้อมูลค่อนข้างใหญ่ ซึ่งเป็นการเสียเวลา
      อาจผิดพลาดในการทำงาน จึงอยากให้ vba เป็นคนเลือกและทำอัตโนมัติครับ

      ลองใช้คำสั่งนี้ก็ยังไม่เวิร์คครับ ไม่รู้ผมพลาดอะไรไปหรือเปล่าครับ
      รบกวนขอคำชี้แนะด้วยครับ
      Attached Files

      Comment


      • #4
        กฏกติกาของฟอรัม: แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก - ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม - เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบ - ห้ามใช้คำว่า อ่ะ คับ คำผวน - ตั้งชื่อแฟ้มเป็นภาษาอังกฤษให้สื่อถึงปัญหา - อย่าระบุชื่อให้คนใดเป็นผู้ตอบ - งดให้ความร่วมมือหรือช่วยกระทู้ที่ละเมิดกฏของฟอรัม

        แก้ไขชื่อไฟล์แนบตามกฏกติกาก่อนนะครับ

        Comment


        • #5
          ไฟล์ที่แก้ไขชื่อเปิดไม่ได้นะครับ
          แต่พอดีผมโหลดไฟล์เดิมมาดูแล้ว เลยเพิ่งเห็นว่า เป็น ActiveX Option Button
          ผมทำไฟล์ตัวอย่างการสั่ง ActiveX option button ให้ switch ไปมา

          โดยใช้ code

          Private Sub CommandButton1_Click()
          If ActiveSheet.First.Value = False Then
          ActiveSheet.First.Value = xlOn
          Else
          ActiveSheet.Second.Value = xlOn
          End If
          End Sub

          ลองปรับดูนะครับ
          Attached Files

          Comment


          • #6
            ขอบคุณมากครับ สำหรับคำแนะนำ ผมเขียนได้แล้วครับ
            พี่ครับ ผมมีคำถาม 2-3 ข้อ อยากให้พี่ๆ ช่วยชี้แนะหน่อยครับ
            1 เราจะได้รู้ / ดู property ของ object ว่ามี อะไรบ้างครับ (บางครั้ง / บางครั้ง แค่พิมพ์ ไปนิดนึง, มันจะโชว์ box list แนะนำให้เราดู แต่บางครั้งก็ไม่โชว์ ไม่รู้ต้องไป set ตรงไหน) พอดีสังเกตเห็นจาก code ว่า Acitvesheet.Value คือจะรู้ได้ไง ว่าต้องใช้ value หรอครับ

            2 (อ้างอิงจาก ไฟล์ภาพที่อัพโหลด) ผมเขียน select case คิดว่าไม่น่าจะผิด แต่ใช้ไม่ได้ แต่พอเขียน if else กลับใช้ได้, พอเริ่มรัน ปรากฏว่า vba มันรัน แต่ไม่เลือก case ให้ครับ
            3 (อ้างอิงจาก ไฟล์ภาพที่อัพโหลด) ผม call private sub ชื่อ cdmRefresh (ซึ่งตัวนี้เป็น command button) ซึ่ง code ถูก ฝัง ไว้ใน Sheet 1 ไม่ใช่ ใน Module เพื่อจะให้ auto click
            ผลลัพธ์ คือ ไม่สามารถ go to private sub ได้ ผมพลาดอะไรไปหรือเปล่าครับ

            ขอบคุณมากครับ
            Attached Files

            Comment


            • #7
              1. ลองดูใน object browser
              2. ตรง case k=1: ใช้ case 1: เลยครับ
              3. สร้าง cmdRefresh ไว้ใน module เลยครับ ที่ sheet ก็เรียกใช้ module เอาครับ
              Last edited by Vajaraphol; 5 Jul 2018, 08:48.

              Comment


              • #8
                ขอบคุณมากเลยครับ

                Comment

                Working...
                X