ฉันกำลังพยายามสร้างส่วนย่อยที่คัดลอกข้อมูลจากฟอร์มหนึ่ง (ซึ่งมีสี่เซลล์) ไปยังชีตอื่น
- เมื่อมันคัดลอกข้อมูลก็จะสร้างแถวใหม่
- แต่ละแบบฟอร์มมีจำนวนแถวสูงสุดได้สิบแถว แต่ควรสามารถรับรู้ได้เมื่อแบบฟอร์มมีเซลล์ว่างและหยุด
- มันควรจะง่ายต่อการทำซ้ำในรูปแบบอื่น ๆ
ตัวอย่างของแบบฟอร์มสามารถเห็นได้โดยใช้ลิงค์ด้านล่าง
นี่คือรหัสของฉันซึ่งใช้งานไม่ได้
Sub Update_1()
Dim lastrow As Long, erow As Long
lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = lastrow To 3
Sheet1.Cells(i, 1).Copy
erow = Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheet1.Paste Destination:=Sheet2.Cells(erow, 2)
Sheet1.Cells(i, 2).Copy
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 1)
Sheet1.Cells(i, 3).Copy
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 8)
Sheet1.Cells(i, 4).Copy
Sheet1.Paste Destination:=Worksheets("Sheet2").Cells(erow, 3)
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Sheet1").Select
Next i
End sub
สิ่งนี้จะไม่ดีไปกว่าการล้นสแต็คหรือไม่
—
rfportilla
@rfportilla ถ้าจุดสนใจของคำถามคือทำอะไรบางอย่างใน Excel แล้วมันก็ดีที่นี่
—
เดฟ
ทำไมรหัสไม่ทำงาน มันให้และผิดพลาดหรือเปล่า? ถ้าใช่มันคืออะไร หรือไม่เพียง แต่ให้ผลลัพธ์ที่คุณคาดหวัง?
—
CharlieRB
จุดประสงค์ของ
—
Byron Wall
Selection.Insert
บรรทัดคืออะไร ในที่สุดรหัสนี้ดูดีทีเดียว ฉันไม่เห็นปัญหาใด ๆ เป็นที่น่าสังเกตว่าCopy
สามารถใช้Destination
พารามิเตอร์ซึ่งจะทำให้คุณสามารถลบPaste
บรรทัดพิเศษได้