Loop แบบมีเงื่อนไข
Posted: Thu Jul 07, 2011 2:06 am
สวัสดีครับอาจารย์ มีเรื่องรบกวนอีกแล้วครับ ผมสร้างเอกสารที่มี OptionButton ซึ่งได้ตั้งชื่อ Groupnameของแต่ละชุดแล้ว
โดยสร้างบนชีต
ผมมีตารางข้อมูลที่ต้องการสั่งLoop แล้วนำค่าไปแสดงที่หน้าเอกสาร (Loopจนกว่าจะพิมพ์ครบทุกข้อมูล) มีคำสั่งดังนี้(เขียนแบบผมนะ
)
Private Sub CommandButton1_Click()
Dim Ing As Long, rs As Range, ry As Range
Sheet3.Range("AA11").Value = 1
On Error Resume Next
Do While Sheet3.Range("AA11").Value <> Sheet3.Range("Z11").Value 'ให้ทำจนกว่าลำดับค่าเริ่มต้นจะเท่ากับลำดับค่าที่มากที่สุด
With Worksheets("Open2")
Ing = Application.Match(Sheet3.Range("AB11").Value, Sheet3.Range("AA:AA"), 0)
Set rs = Sheet3.Range("AA" & Ing).Resize(, 8)
Set ry = Sheet3.Range("AI1")
End With
rs.Copy: ry.PasteSpecial xlPasteValues
Application.CutCopyMode = False
If Sheet1.Range("Z14").Value = 1 Then 'ผมกำหนดค่า Z14=IF(AI5="นาย",1,IF(AI5="นาง",2,IF(AI5="น.ส",3,FALSE))) ,AI5=LEFT(AI7,3) ,AI7=ชื่อลูกค้า)
Sheet1.OptionButton13.Value = True 'แสดงนาย
Sheet1.OptionButton14.Value = False
Sheet1.OptionButton15.Value = False
End If
If Sheet1.Range("Z14").Value = 2 Then
Sheet1.OptionButton14.Value = True 'แสดงนาง
Sheet1.OptionButton13.Value = False
Sheet1.OptionButton15.Value = False
End If
If Sheet1.Range("Z14").Value = 3 Then
Sheet1.OptionButton15.Value = True 'แสดงนางสาว
Sheet1.OptionButton13.Value = False
Sheet1.OptionButton14.Value = False
End If
If Sheet3.Range("Z15").Value = True Then ' Z15=IF(AI5="นาย",TRUE,FALSE),เพื่อระบุเพศ
Sheet1.OptionButton17.Value = True 'เพศชายแสดง
Sheet1.OptionButton18.Value = False 'เพศหญิง
End If
If Sheet3.Range("Z15").Value = False Then
Sheet1.OptionButton18.Value = True 'เพศหญิงแสดง
Sheet1.OptionButton17.Value = False 'เพศชาย
End If
Sheet1.TextBox1.Value = Sheet3.Range("AP1").Text
Sheet1.TextBox1.Value = Sheet3.Range("AN1").Text
Sheet1.Range("O14").Value = Sheet3.Range("AI1").Value
Sheet1.Range("X27").Value = Sheet3.Range("AL1").Value
Sheet1.PrintOut
Sheet3.Range("AA12").Value = Sheet3.Range("AA11").Value + 1
Sheet3.Range("AA11").Value = Sheet3.Range("AA12").Value
Loop
If Sheet3.Range("AA11").Value = Sheet3.Range("Z11").Value Then
Exit Sub
End If
If Err > 0 Then
Exit Sub
End If
End Sub
การloop เพื่อส่งข้อมูลก็โอเคครับมีข้อมูลในตาราง 10 ข้อมูลก็สามารถพิมพ์เอกสารของลูกค้าแต่ละรายได้ครบตามจำนวน
แต่ประเด็นคือ OptionButton ไม่ยอมแสดงค่าตามเงื่อนไขที่ตั้งไว้ พยายามคิดแก้ยังไงก็ไม่สำเร็จ(16.30-1.59 น.)
รบกวนอาจารย์สอนหน่อยครับ
โดยสร้างบนชีต
ผมมีตารางข้อมูลที่ต้องการสั่งLoop แล้วนำค่าไปแสดงที่หน้าเอกสาร (Loopจนกว่าจะพิมพ์ครบทุกข้อมูล) มีคำสั่งดังนี้(เขียนแบบผมนะ
Private Sub CommandButton1_Click()
Dim Ing As Long, rs As Range, ry As Range
Sheet3.Range("AA11").Value = 1
On Error Resume Next
Do While Sheet3.Range("AA11").Value <> Sheet3.Range("Z11").Value 'ให้ทำจนกว่าลำดับค่าเริ่มต้นจะเท่ากับลำดับค่าที่มากที่สุด
With Worksheets("Open2")
Ing = Application.Match(Sheet3.Range("AB11").Value, Sheet3.Range("AA:AA"), 0)
Set rs = Sheet3.Range("AA" & Ing).Resize(, 8)
Set ry = Sheet3.Range("AI1")
End With
rs.Copy: ry.PasteSpecial xlPasteValues
Application.CutCopyMode = False
If Sheet1.Range("Z14").Value = 1 Then 'ผมกำหนดค่า Z14=IF(AI5="นาย",1,IF(AI5="นาง",2,IF(AI5="น.ส",3,FALSE))) ,AI5=LEFT(AI7,3) ,AI7=ชื่อลูกค้า)
Sheet1.OptionButton13.Value = True 'แสดงนาย
Sheet1.OptionButton14.Value = False
Sheet1.OptionButton15.Value = False
End If
If Sheet1.Range("Z14").Value = 2 Then
Sheet1.OptionButton14.Value = True 'แสดงนาง
Sheet1.OptionButton13.Value = False
Sheet1.OptionButton15.Value = False
End If
If Sheet1.Range("Z14").Value = 3 Then
Sheet1.OptionButton15.Value = True 'แสดงนางสาว
Sheet1.OptionButton13.Value = False
Sheet1.OptionButton14.Value = False
End If
If Sheet3.Range("Z15").Value = True Then ' Z15=IF(AI5="นาย",TRUE,FALSE),เพื่อระบุเพศ
Sheet1.OptionButton17.Value = True 'เพศชายแสดง
Sheet1.OptionButton18.Value = False 'เพศหญิง
End If
If Sheet3.Range("Z15").Value = False Then
Sheet1.OptionButton18.Value = True 'เพศหญิงแสดง
Sheet1.OptionButton17.Value = False 'เพศชาย
End If
Sheet1.TextBox1.Value = Sheet3.Range("AP1").Text
Sheet1.TextBox1.Value = Sheet3.Range("AN1").Text
Sheet1.Range("O14").Value = Sheet3.Range("AI1").Value
Sheet1.Range("X27").Value = Sheet3.Range("AL1").Value
Sheet1.PrintOut
Sheet3.Range("AA12").Value = Sheet3.Range("AA11").Value + 1
Sheet3.Range("AA11").Value = Sheet3.Range("AA12").Value
Loop
If Sheet3.Range("AA11").Value = Sheet3.Range("Z11").Value Then
Exit Sub
End If
If Err > 0 Then
Exit Sub
End If
End Sub
การloop เพื่อส่งข้อมูลก็โอเคครับมีข้อมูลในตาราง 10 ข้อมูลก็สามารถพิมพ์เอกสารของลูกค้าแต่ละรายได้ครบตามจำนวน
แต่ประเด็นคือ OptionButton ไม่ยอมแสดงค่าตามเงื่อนไขที่ตั้งไว้ พยายามคิดแก้ยังไงก็ไม่สำเร็จ(16.30-1.59 น.)