วิธีการบันทึกข้อมูล update ทับอันเดิม (VBA)
Posted: Sat Aug 26, 2017 6:48 pm
รบกวนด้วยนะครับ
ผมต้องการดึงข้อมูลจาก Sheet "Table record" มาที่ Sheet "AMI Form" เมื่อมีการ key รหัส HN ลงไป
โดยในกรณีที่มีรหัส HN ตัวเดียวกันและมีวันที่ของ Chest pain present date (highlight สีแดง) วันเดียวกัน จะนับว่าเป็น record เดียวกัน
จึงต้องการนำข้อมูลกลับมาแสดงที่ Sheet "AMI Form" อีกครั้ง เพื่ิอสามารถแก้ไขข้อมูลและบันทึกซ้ำลงไปใน Record เดิมซึ่งเป็น HN และวันที่เดียวกันได้ แต่เมื่อผมได้ทดลองใช้ vba ลงใน ปุ่ม save (CommandButton1) กลับเกิด Error โปรแกรมค้างไม่สามารถใช้งานได้ ผมต้องแก้ไขอย่างไรดีครับ
ขอบคุณมากครับผม
สูตร VBA
Private Sub CommandButton1_Click()
CH = Cells(2, 1)
If CH = 1 Then
MyVar = [Source]
[Target] = MyVar
Else
Dim rsAll As Range, rtAll As Range
Dim rs As Range, i As Integer
With Worksheets("ฤMI Form")
Set rsAll = .Range("AD3", .Range("AD" & Rows.Count).End(xlUp))
End With
With Worksheets("Table record")
Set rtAll = .Range("A5", .Range("A" & Rows.Count).End(xlUp))
End With
For Each rs In rsAll
For i = rtAll.Count To 1 Step -1
If rs = rtAll(i) And rs.Offset(0, 78) = rtAll(i).Offset(0, 81) _
Then
rs.Offset(0, 0).Resize(1, 81).Copy
rtAll(i).Offset(0, 0).PasteSpecial xlPasteValues
End If
Next i
Next rs
Application.CutCopyMode = False
Application.ScreenUpdating = True
Range("F6") = Range("M5")
End If
End Sub
ผิดพลาดอย่างไรขออภัยล่วงหน้านะครับ
ผมต้องการดึงข้อมูลจาก Sheet "Table record" มาที่ Sheet "AMI Form" เมื่อมีการ key รหัส HN ลงไป
โดยในกรณีที่มีรหัส HN ตัวเดียวกันและมีวันที่ของ Chest pain present date (highlight สีแดง) วันเดียวกัน จะนับว่าเป็น record เดียวกัน
จึงต้องการนำข้อมูลกลับมาแสดงที่ Sheet "AMI Form" อีกครั้ง เพื่ิอสามารถแก้ไขข้อมูลและบันทึกซ้ำลงไปใน Record เดิมซึ่งเป็น HN และวันที่เดียวกันได้ แต่เมื่อผมได้ทดลองใช้ vba ลงใน ปุ่ม save (CommandButton1) กลับเกิด Error โปรแกรมค้างไม่สามารถใช้งานได้ ผมต้องแก้ไขอย่างไรดีครับ
ขอบคุณมากครับผม
สูตร VBA
Private Sub CommandButton1_Click()
CH = Cells(2, 1)
If CH = 1 Then
MyVar = [Source]
[Target] = MyVar
Else
Dim rsAll As Range, rtAll As Range
Dim rs As Range, i As Integer
With Worksheets("ฤMI Form")
Set rsAll = .Range("AD3", .Range("AD" & Rows.Count).End(xlUp))
End With
With Worksheets("Table record")
Set rtAll = .Range("A5", .Range("A" & Rows.Count).End(xlUp))
End With
For Each rs In rsAll
For i = rtAll.Count To 1 Step -1
If rs = rtAll(i) And rs.Offset(0, 78) = rtAll(i).Offset(0, 81) _
Then
rs.Offset(0, 0).Resize(1, 81).Copy
rtAll(i).Offset(0, 0).PasteSpecial xlPasteValues
End If
Next i
Next rs
Application.CutCopyMode = False
Application.ScreenUpdating = True
Range("F6") = Range("M5")
End If
End Sub
ผิดพลาดอย่างไรขออภัยล่วงหน้านะครับ