ฉันจะเข้าถึงช่วงที่สอดคล้องกับทั้งคอลัมน์เริ่มต้นที่แถว 2 ได้อย่างไร (มีแถวส่วนหัว)
จุดสิ้นสุดของการเลือกควรเป็นเซลล์ที่ไม่ว่างสุดท้ายในคอลัมน์
ฉันจะเข้าถึงช่วงที่สอดคล้องกับทั้งคอลัมน์เริ่มต้นที่แถว 2 ได้อย่างไร (มีแถวส่วนหัว)
จุดสิ้นสุดของการเลือกควรเป็นเซลล์ที่ไม่ว่างสุดท้ายในคอลัมน์
คำตอบ:
ดูบทความสนับสนุนของ Microsoft วิธีการเลือกเซลล์ / ช่วงโดยใช้ขั้นตอน Visual Basic ใน Excel , # 19 ( วิธีการเลือกช่วงทั้งหมดของเซลล์ที่อยู่ติดกันในคอลัมน์ )
ลองสิ่งนี้:
Range(Range("A2"),Range("A2").End(xldown)).Select
หรือสิ่งนี้:
Range(Range(Cells(2, 1), Cells(2, 1)), Range(Cells(65535, 1), Cells(65535, 1)).End(xlUp)).Select
อ้างถึงคำตอบ SO นี้วิธีที่ปลอดภัยเพียงวิธีเดียวคือ.find()
วิธีการ
วิธีการอื่นทั้งหมดอาจให้ผลที่ไม่ถูกต้องหากคุณลบบางเซลล์ก่อนหน้านี้
ตัวอย่างเพื่อรับเซลล์สุดท้าย
Lastrow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Lastcol = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
และคำตอบเฉพาะสำหรับคำถามของคุณ (สมมติว่าข้อมูลของคุณอยู่ในคอลัมน์ 2 เริ่มต้นที่แถว 2)
Range([B2], [B:B].Find("*", [B1], , , xlByRows, xlPrevious)).select
คุณสามารถใช้แป้นพิมพ์ลัด Excel ลอง+CtrlHome
สิ่งนี้จะนำคุณไปยังเซลล์ A1 (หากคุณไม่ได้ใช้บานหน้าต่างการแช่แข็ง) มาเซลล์ลงหนึ่งแล้วใช้Ctrl+ Shift+ Down arrowปุ่มเพื่อเลือกจนแถวเข้ามาล่าสุด
หากคุณต้องเลือกค่าคอลัมน์ให้ใช้right arrowปุ่มแทนdown arrowปุ่ม
โค้ดนี้มีค่าเฉลี่ยทุกอย่างยกเว้นส่วนหัวที่มีส่วนหัวในเซลล์ "B1"
Dim GG as Long
GG = Application.WorksheetFunction.Average(ActiveSheet.Range("B2", Range("B2").End(xlDown)))