
ลองปรับมาเองนะครับ ผมคิดว่าไม่ยากจนเกินไปกับการใช้ Offset และจำเป็นที่จะต้องแก้ไขเองเป็นบ้างหากต้องการใช้ VBA
ที่แน่ ๆ
จะต้องเปลี่ยนเป็นตามจำนวนคอลัมน์ที่ต้องการนำมาวางครับ หากนำมาวาง 9 คอลัมน์ ก็ต้องเปลี่ยนเป็น
ส่วนการใช้ Offset จะยกตัวอย่างเพื่อความเข้าใจครับ
r.offset(0,0) หมายถึงว่าให้นำค่า r มาเลย เลข 0 ตัวแรกหมายถึงถัดจากเซลลปัจจุบันลงไปด้านล่างจำนวนกี่บรรทัด
เลข 0 ตัวที่สองหมายถึงว่าถัดจากเซลล์ปัจจุบันไปด้านขวาจำนวนกี่คอลัมน์ ถ้าหากมีตัวเลขเป็นลบก็แสดงว่ากลับด้านกับที่อธิบายมาแล้ว ส่วนบรรทัดนี้
Code: Select all
Set rt = .Range("A5", .Range("J" & lng - 1 + 5))
กรณีตามตัวอย่างไม่ต้องไปเปลี่ยนค่ามันครับ เห็นเปลี่ยนมาเป็น
Code: Select all
Set rt = .Range("A5", .Range("J" & lng - 1 + 9))
จะทำให้ Range มากเกินกว่าที่ควรจะเป็น
Code นี้ความหมายคือให้เริ่มที่บรรทัดที่ 5 นับไปอีกเท่าจำนวนของค่าตัวแปร lng หักออกด้วย 1