แมโครเพื่อย้ายหรือคัดลอกข้อมูลระหว่างสมุดงาน Excel

บทความนี้จะสอนวิธี คัดลอกหรือถ่ายโอนข้อมูลระหว่างสเปรดชีต ใน Microsoft Excel โดยใช้ VBA ในตัวอย่างนี้เราจะสอนวิธีการรวมข้อมูลโดยใช้แบบสอบถามแบบใช้ผนวกข้อมูล การรวมกันของงานนี้จะช่วยให้คุณสามารถรวมข้อมูลในแผ่นงานที่มีอยู่เพื่อการวิเคราะห์ที่ง่ายขึ้น

แมโครเพื่อย้ายหรือคัดลอกข้อมูลใน Excel

ลองพิจารณากรณีที่คุณต้องการคัดลอกข้อมูลจากเวิร์กบุ๊กหนึ่งจากนั้นแก้ไขเนื้อหาเป็นเวิร์กบุ๊กอื่น ในตัวอย่างนี้สมุดงานหนึ่ง (สมุดงานต้นฉบับ) มี 1 2 3 4 5 และสมุดงานสองมี 6 7 8 9 0

หลังจากเรียกใช้แมโครสมุดงานสองควรมี 6 7 8 9 0 1 2 3 4 5 รูปแบบของเวิร์กบุ๊กทั้งสองเหมือนกัน

นี่คือแมโครที่สามารถถ่ายโอนและผนวกข้อมูลของคุณ (ตรวจสอบให้แน่ใจว่าคุณอ่าน หมายเหตุ ในรหัส):

 Sub CopyData ()

ติ่ม sBook_t As String

ติ่ม sBook_s As String

ติ๋ม sSheet_t As String

Dim sSheet_s As String

ติ่ม lMaxRows_t ตราบใดที่

ติ่ม lMaxRows_s นาน

Dim sMaxCol_s As String

ติ่ม sRange_t As String

Dim sRange_s As String

sBook_t = "เป้าหมายข้อมูล WB- คัดลอกข้อมูลไปยัง WB.xls"

sBook_s = "แหล่งข้อมูล WB - คัดลอกข้อมูลไปยัง WB.xls"

sSheet_t = "กำหนดเป้าหมาย WB"

sSheet_s = "ที่มา"

lMaxRows_t = สมุดงาน (sBook_t). แผ่น (sSheet_t). เซลล์ (Rows.Count, "A"). End (xlUp) .Row

lMaxRows_s = สมุดงาน (sBook_s). แผ่น (sSheet_s). เซลล์ (Rows.Count, "A"). End (xlUp) .Row

sMaxCol_s = สมุดงาน (sBook_s). แผ่น (sSheet_s). เซลล์ (1, คอลัมน์. จำนวน). สิ้นสุด (xlToLeft). ที่อยู่

sMaxCol_s = Mid (sMaxCol_s, 2, InStr (2, sMaxCol_s, "$") - 2)

ถ้า (lMaxRows_t = 1) จากนั้น

sRange_t = "A1:" & sMaxCol_s & lMaxRows_s

sRange_s = "A1:" & sMaxCol_s & lMaxRows_s

สมุดงาน (sBook_t). แผ่น (sSheet_t). ช่วง (sRange_t) = สมุดงาน (sBook_s). แผ่น (sSheet_s). ช่วง (sRange_s) .Value

อื่น

sRange_t = "A" & (lMaxRows_t + 1) & ":" & sMaxCol_s & (lMaxRows_t + lMaxRows_s - 1)

sRange_s = "A2:" & sMaxCol_s & lMaxRows_s

สมุดงาน (sBook_t). แผ่น (sSheet_t). ช่วง (sRange_t) = สมุดงาน (sBook_s). แผ่น (sSheet_s). ช่วง (sRange_s) .Value

' ###################### บันทึก #################

'บรรทัดต่อไปนี้จะต้องใช้หมายเลขซีเรียลจะได้รับการแก้ไขด้วยแทนที่จะถูกคัดลอก

หากไม่มีความจำเป็นให้ลบบรรทัดด้านล่าง

สมุดงาน (sBook_t). แผ่น (sSheet_t). จัดเรียง ("A" & lMaxRows_t) .AutoFill ปลายทาง: = สมุดงาน (sBook_t). แผ่น (sSheet_t) .Range ("A" & lMaxRows_t - 1)) ประเภท: = xlFillSeries

สิ้นสุดถ้า

ส่วนท้าย

บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม