Page 1 of 1
ใช้สูตร IF แล้วไม่แสดงผลตามต้องการ
Posted: Sat May 26, 2012 11:41 pm
by glooffy
รายละเอียด : ใช้สูตร If แล้วต้องการให้แสดงผลลัพธ์ หลายผลลัพธ์ พร้อมกันครับ ผมได้แนบไฟล์ตัวอย่างที่มีปัญหามาให้ดูด้วยครับ หรือว่า ถ้าผมจะไม่ใช้สูตร IF แล้วนั้น มีวิธีอื่นหรือไม่ครับ ขอบคุณครับ
Re: ใช้สูตร IF แล้วไม่แสดงผลตามต้องการ
Posted: Sat May 26, 2012 11:52 pm
by snasui

อ่านแล้วยังไม่เคลียร์ครับ สูตร If ที่ว่านั้นใส่ที่เซลล์ใดครับ กรณีเขียนเป็นชื่อของช่วงเซลล์ย่อมไม่แสดงผลในเซลล์จนกว่าเราจะคีย์ Name นั้นเข้าไปในเซลล์เป้าหมายที่ต้องการให้แสดงผลครับ
Re: ใช้สูตร IF แล้วไม่แสดงผลตามต้องการ
Posted: Sun May 27, 2012 12:12 am
by glooffy
คืออย่างนี้นะครับ :
อยากให้ข้อมูลที่อยู่ใน Sheet Record ตรงช่วงที่ผมทำกรอบสีแดงไว้ครับ โดยที่เวลากดปุ่ม "คีย์เสร็จแล้วกดปุ่มนี้" รายการข้อมูลที่คีย์เข้าไปจะต้องแสดงที่ Sheet Record ตรงกรอบสีแดง ในขณะเดียวกันก็จะต้องไปแสดงข้อมูลที่ Sheet Hold ในกรอบสีเขียวด้วยครับ
Re: ใช้สูตร IF แล้วไม่แสดงผลตามต้องการ
Posted: Sun May 27, 2012 12:31 am
by snasui

รายการในกรอบสีแดงก็แสดงอยู่ในกรอบสีแดงอยู่แล้ว เมื่อกดปุ่มก็
ไม่จำเป็นต้องบันทึกลงที่เดิม แต่หากต้องการจะนำข้อมูลที่ได้จากการเลือกเซลล์ C3 โดยที่ หาก
- C3 มีค่าเป็น ลงทะเบียนบัตรยึดจากเครื่อง แล้วให้นำข้อมูลในช่วง B13:F24 เฉพาะที่มีข้อมูลไปวางที่ชีท Hold เริ่มที่เซลล์ C10
- C3 มีค่าเป็น คืนบัตรให้ลูกค้าแล้ว แล้วให้นำข้อมูลในช่วง I13:M24 เฉพาะที่มีข้อมูลไปวางที่ชีท GetBack เริ่มที่เซลล์ C10
- C3 มีค่าเป็น ทำลายบัตรแล้ว แล้วให้นำข้อมูลในช่วง O13:S24 เฉพาะที่มีข้อมูลไปวางที่ชีท Destroy เริ่มที่เซลล์ C10
จาก Code ที่แนบมาสามารถเขียนใหม่เป็นตามด้านล่างครับ
Code: Select all
Sub SendData()
Dim rSource As Range
Dim rTarget As Range
With Worksheets("Record")
Select Case .Range("C3").Value
Case "ลงทะเบียนบัตรยึดจากเครื่อง"
Set rSource = .Range("B13", .Range("F24").End(xlUp))
Set rTarget = Worksheets("Hold").Range("C" & Rows.Count) _
.End(xlUp).Offset(1, 0)
Case "คืนบัตรให้ลูกค้าแล้ว"
Set rSource = .Range("I13", .Range("M24").End(xlUp))
Set rTarget = Worksheets("GetBack").Range("C" & Rows.Count) _
.End(xlUp).Offset(1, 0)
Case "ทำลายบัตรแล้ว"
Set rSource = .Range("O13", .Range("S24").End(xlUp))
Set rTarget = Worksheets("Destroy").Range("C" & Rows.Count) _
.End(xlUp).Offset(1, 0)
End Select
End With
If rSource.Row = 12 Then
MsgBox "Can't found data. Please try again."
Exit Sub
End If
rSource.Copy
rTarget.PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
ปกติกรณีใช้ VBA ควรบอกด้วยว่าได้เขียน Code ไว้ที่ Module ใด ชื่อว่า Procedure อะไร จะได้เข้าถึงข้อมูลโดยเร็ว
Re: ใช้สูตร IF แล้วไม่แสดงผลตามต้องการ
Posted: Sun May 27, 2012 12:38 am
by glooffy
ขอบคุณมากครับ และต้องขอโทษด้วยนะครับ ที่ผมลืมแจ้งเรื่อง VBA ไปครับ