มาโครเพื่อเติมเซลล์จากคอลัมน์ตามลำดับเมื่อฉันคลิกที่ปุ่ม


0

ฉันมีปัญหามากมายในการพยายามคิดออก

นี่คือเค้าโครงของฉัน:

สกรีนช็อตของโครงร่าง

อย่างที่คุณเห็นฉันมี 2 ปุ่ม

สิ่งที่ฉันต้องการให้แต่ละปุ่มทำคือ:

  1. ทุกครั้งที่ฉันคลิกYESมันจะแทรก a ลงYในเซลล์ในช่วงที่ระบุ
  2. หากฉันคลิกYESอีกครั้งระบบจะแทรกYเซลล์ในเซลล์ถัดไปโดยอัตโนมัติภายใต้เซลล์ก่อนหน้าในคอลัมน์เดียวกัน
  3. ถ้าผมคลิกมันก็จะยังคงลงคอลัมน์และแทรกNON

วิธีทำให้เอาต์พุตของปุ่มให้ใช้เซลล์ฟรีถัดไปเสมอ


1
ยินดีต้อนรับสู่ Super User คุณสามารถแชร์รหัสที่คุณมีอยู่แล้วเพื่อให้เราเห็นว่าจะช่วยคุณได้ที่ไหน
CharlieRB

คำตอบ:


3

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

Dim rNext as Long
rNext = 2   'First used row in column F
Do Until LenB(Range("F" & rNext).Value) = 0
    rNext = rNext + 1
    If rNext = ActiveSheet.Rows.Count Then Exit Do
Loop

และนี่คือวิธีแก้ปัญหาที่แข็งแกร่งและเร็วขึ้นเล็กน้อย:

Dim rNext As Long
rNext = Range("F2:F" & Cells.Rows.Count).Find(vbNullString).Row

ดังที่คุณสามารถบอกได้จากตัวอย่างที่สองคุณสามารถทำได้โดยตรงด้วยสิ่งต่อไปนี้:

Range("F2:F" & Cells.Rows.Count).Find(vbNullString).Value = "Y"

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