การเขียนโค้ด VBA เพื่อเติมลงในส่วนท้ายของช่วงซึ่งมีความยาวแตกต่างกันไป


0

ฉันกำลังเขียนแมโครเพื่อทำให้รายงานเสร็จสมบูรณ์โดยอัตโนมัติซึ่งมีโครงสร้างเรียงเป็นแนวเดียวกัน (เช่นเขตข้อมูลเดียวกันในคอลัมน์เดียวกันทุกเดือนหลังจากเดือน) อย่างไรก็ตามจำนวนระเบียนในรายงานจะเปลี่ยนจากเดือนหนึ่งไปเป็นเดือน

ในการใช้ตัวบันทึกแมโครเพื่อเติมคอลัมน์ใดคอลัมน์หนึ่งมันสร้างรหัสนี้ขึ้นมา:

Selection.AutoFill ปลายทาง: = ช่วง ("Z2: Z1092")

ดูเหมือนว่ารหัสนี้จะใช้ได้เฉพาะกับรายงานที่ลงท้ายด้วยแถว 1092 มีวิธีแก้ไขรหัสนี้เพื่อให้อัปเดตแบบไดนามิกขึ้นอยู่กับความยาวของรายงานหรือไม่

ฉันคิดว่าถ้าฉันกำหนดตัวแปรที่เท่ากับแถวสุดท้ายของรายงานและใช้แทน 1,092 ในบรรทัดของรหัสนั้นที่จะทำเคล็ดลับ ฉันยังใหม่กับการใช้ VBA และชื่นชมความช่วยเหลืออย่างมาก

คำตอบ:


1

คุณสามารถลอง:

lngLastRow= ActiveSheet.UsedRange.Rows.Count

Selection.AutoFill Destination:=Range("Z2:Z" & lnglastrow)

แต่ฉันขอแนะนำให้คุณหลีกเลี่ยงการใช้การเลือกวัตถุเนื่องจากมีประสิทธิภาพการทำงานที่สำคัญเมื่อเลือกเซลล์ แทนที่จะใช้Rangeวัตถุนั้นชี้ไปที่เซลล์ของคุณ


โอ้นั่นลื่นแล้ว - ขอบคุณ ฉันซาบซึ้งชายคนนั้น!
Richard Pullman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.