Page 1 of 1

สอบถามโค้ด VBA ส่งข้อมูล Cell ต้นทางไป Cell ปลายทาง

Posted: Fri Aug 04, 2017 5:31 pm
by Jancha
จุดประสงค์คือเมื่อ Cell ใด Cell หนึ่งใน Cell ("B8:B33") Sheet Source ถูกคลิกเลือกจะให้ส่งชุด Data ใน Cell นั้นๆไปที่ Cell "C8" Sheet Target "โดยไม่ต้องสร้างปุ่ม Run macro อยากให้เป็นการดักจับการเปลี่ยนแปลงการคลิกเลือก cell ในช่วง Range ที่ระบุแทน"
เช่น
- ถ้าคลิกเลือกที่ cell "B8" (Sheet Source) ค่า AAAAM จะถูกส่งไปที่ Cell "C8" (Sheet Target)
- ถ้าคลิกเลือกที่ cell "B15" (Sheet Source) ค่า HHHHM จะถูกส่งไปที่ Cell "C8" (Sheet Target)
- ถ้าคลิกเลือกที่ cell "B24" (Sheet Source) ค่า QQQQM จะถูกส่งไปที่ Cell "C8" (Sheet Target) เป็นต้น

Code: Select all

Sub SendData()
 
    Data = Range("B11")  'Cell B11 มีชุด data "DDDDM" ส่งไปที่ Target ถ้า cell ที่เลือกเปลี่ยนไปจะต้องปรับโค้ดอย่างไร
    Range("Target") = Data
    Sheets("Target").Select
    
End Sub

Re: สอบถามโค้ด VBA ส่งข้อมูล Cell ต้นทางไป Cell ปลายทาง

Posted: Fri Aug 04, 2017 6:15 pm
by snasui
:D เข้า VBE > ดับเบิ้ลคลิกชีต Source > วาง Code ด้านล่าง > กลับมายัง Excel > ลองทดสอบเลือกข้อมูลและสังเกตดูผลครับ

Code: Select all

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("b8:b33")) Is Nothing Then
        Sheets("Target").Range("c8").Value = Target.Value
    End If
End Sub

Re: สอบถามโค้ด VBA ส่งข้อมูล Cell ต้นทางไป Cell ปลายทาง

Posted: Fri Aug 04, 2017 6:29 pm
by Jancha
:D ใช่เลยครับที่ต้องการ ขอบคุณมากครับอาจารย์

Re: สอบถามโค้ด VBA ส่งข้อมูล Cell ต้นทางไป Cell ปลายทาง

Posted: Fri Aug 04, 2017 7:45 pm
by Jancha
สอบถามเพิ่มเติมครับ ผมลอง save as file.xlsm(macro) to file.xlsb (Binary) เพราะจะได้ขนาดไฟล์ที่เล็กลง มีข้อสงสัยคือ
- เพราะเหตุใด code vba ต่างๆยังทำงานได้ปกติ ถ้าเพิ่ม code vba ภายหลัง จะมีจุดบกพร่องจุดใดจุดหนึ่งหรือไม่ ไฟล์ชนิดนี้จะเหมาะสมกับ vba หรือไม่ครับ

Re: สอบถามโค้ด VBA ส่งข้อมูล Cell ต้นทางไป Cell ปลายทาง

Posted: Sat Aug 05, 2017 5:42 pm
by snasui
:D สามารถใช้งานได้ปกติครับ

มีข้อจำกัดบางประการเช่นการสร้างเมนูขึ้นมาใช้เอง จะต้องแปลงนามสกุลไฟล์กลับไปเป็น .xlsm เสียก่อน เมื่อสร้างเมนูเสร็จแล้วค่อยแปลงกลับมาเป็น .xlsb ซึ่งปกติหากไม่ใช่ Developer มักจะไม่ได้สร้างเมนูขึ้นมาใช้เอง จึงไม่ต้องกังวลครับ

อ่านเพิ่มเติมได้ที่นี่ครับ http://blog.datasafexl.com/excel-articl ... ry-format/

Re: สอบถามโค้ด VBA ส่งข้อมูล Cell ต้นทางไป Cell ปลายทาง

Posted: Sun Aug 06, 2017 11:55 am
by Jancha
:D ขอบคุณสำหรับข้อมูลดีๆครับอาจารย์