Page 1 of 1

Code VB เปลี่ยนข้อมูลในเซลโดยดึงมาจากอีก Sheet

Posted: Mon Sep 18, 2023 11:59 pm
by tigerwit
จากไฟล์ที่แนบมา
ที่ Sheet Password ต้องการให้เซล A1 เปลี่ยนข้อมูลไปทุกครั้งที่ เซล A2 มีการเปลี่ยนแปลง
โดยให้ดึงข้อมูลจาก Sheet ListPW ในคลอลัมน์ A แสดง
ต้องปรับแก้ไข Code อย่างไรครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    Sheet3.Range("A1").Value = Sheet2.Range("A1").Value
End If
End Sub

Re: Code VB เปลี่ยนข้อมูลในเซลโดยดึงมาจากอีก Sheet

Posted: Tue Sep 19, 2023 9:08 am
by snasui
:D กรุณาสมมุติค่าที่เปลี่ยนไปและข้อมูลที่ดึงมาแสดง พร้อมอธิบายเงื่อนไขในการดึงข้อมูลประกอบมาด้วยจะได้เข้าใจตรงกันครับ

Re: Code VB เปลี่ยนข้อมูลในเซลโดยดึงมาจากอีก Sheet

Posted: Tue Sep 19, 2023 10:01 am
by tigerwit
:D กรุณาสมมุติค่าที่เปลี่ยนไปและข้อมูลที่ดึงมาแสดง พร้อมอธิบายเงื่อนไขในการดึงข้อมูลประกอบมาด้วยจะได้เข้าใจตรงกันครับ
สมมุติว่า ค่าเริ่มต้นในชีท password ของเซล A1 คือ PasswordPassword ค่าใชเซล A2 คือ โรงเรียนบ้านดอนเสาธง
หากค่าในเซล A2 เปลี่ยนไป เช่นจาก โรงเรียนบ้านดอนเสาธง เป็น โรงเรียนบ้านหนองสูง
ก็ให้ค่าในเซล A1 เปลี่ยนไป โดยไปดึงค่าจากชีท ListPW ที่เซล A1 มาแสดง
และต่อหากค่าในเซล A2 เปลี่ยนไปอีกครั้ง จาก โรงเรียนบ้านหนองสูง ไปเป็น โรงเรียน..............
ก็ให้ ก็ให้ค่าในเซล A1 เปลี่ยนไป โดยไปดึงค่าจากชีท ListPW ที่เซล A2 มาแสดง

:D :D

Re: Code VB เปลี่ยนข้อมูลในเซลโดยดึงมาจากอีก Sheet

Posted: Tue Sep 19, 2023 11:23 am
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Then
        Sheet3.Range("A1").Value = Sheet2.Range("A1").Offset(Sheet2.Range("b1").Value, 0).Value
        Sheet2.Range("b1").Value = Sheet2.Range("b1").Value + 1
    End If
End Sub

Re: Code VB เปลี่ยนข้อมูลในเซลโดยดึงมาจากอีก Sheet

Posted: Tue Sep 19, 2023 11:37 am
by puriwutpokin
แบบนี้หรือเปล่าครับ ไม่ค่อยเข้าใจ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
If Sheet3.Range("A1").Value = "PasswordPassword" Then
Sheet3.Range("A1").Value = Sheet2.Range("A1").Value
Else
    Sheet3.Range("A1").Value = Sheet2.Range("A1"). _
    Offset(Application.Match(Sheet3.Range("A1").Value, Sheet2.Range("A1:A99").Value, 0), 0)
End If
End If
End Sub

Re: Code VB เปลี่ยนข้อมูลในเซลโดยดึงมาจากอีก Sheet

Posted: Tue Sep 19, 2023 12:07 pm
by tigerwit
ขอบคุณทั้งสองท่านครับ