ฉันต้องการเริ่มต้นด้วยข้อมูลเช่นตาราง A ด้านล่างและสร้างตารางใหม่เช่นตาราง B ด้านล่างโดยการลบเซลล์ที่มี-1
และยุบแต่ละคอลัมน์เพื่อกำจัดเซลล์ว่าง
ฉันรู้วิธีการทำด้วยตนเอง แต่ฉันจำเป็นต้องอัปเดตตาราง A หลายครั้งและประเมินตาราง B ทุกครั้งดังนั้นฉันจึงกำลังมองหากระบวนการอัตโนมัติ มีการรวมกันของฟังก์ชั่นที่จะอนุญาตหรือไม่
ฉันเขียนมาโครตัวต่อไป มันควรจะทำงานด้วยการรันเพียงครั้งเดียว อย่างไรก็ตามด้วยเหตุผลบางอย่างฉันจำเป็นต้องเรียกใช้หลายครั้งเพื่อให้ได้ผลลัพธ์ตาราง B ในที่สุด อะไรคือสาเหตุของสิ่งนี้?
Sub Macro1()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 5
If Cells(i, j).Value = -1 Then
Cells(i, j).Select
Selection.Delete Shift:=xlUp
End If
Next j
Next i
End Sub
2
ยินดีต้อนรับสู่ Super User ไซต์ไม่ใช่ประเภทของสถานที่ "เขียนรหัสฉัน" แต่ผู้คนจะช่วยคุณแก้ปัญหาที่คุณพยายามแก้ไขด้วยตัวเอง คุณจะได้รับการตอบสนองที่ดีขึ้นมากถ้าคุณอธิบายสิ่งที่คุณได้ลองหรือวิจัยและที่ที่คุณติดอยู่ หากคุณไม่มีเงื่อนงำที่จะเริ่มต้นอย่างน้อยก็อธิบายความคิดของคุณเกี่ยวกับวิธีที่คุณอาจเข้าใกล้มันเพื่อให้ความคิดแก่ผู้คนเกี่ยวกับระดับของข้อมูลที่จะเป็นประโยชน์
—
fixer1234
จำอัตโนมัติต้องการโปรแกรม! ดังนั้นข้อเสนอแนะของฉันคือตัดสินใจก่อนว่าคุณต้องการ VBA หรือ Non-VBA โซลูชันประเภทใด อื่น ๆ คือคุณคิดอย่างไรที่จะแสดงค่าที่ไม่ใช่ -1 ตั้งแต่ D3, B4, A5 และหลายคนอยู่ในแถวที่แตกต่างกัน แต่ในตาราง B, 5 และ 4s อยู่ในแถวเดียว? อย่าตั้งคำถามอย่างสงสัยต้องมีเหตุผลอยู่เบื้องหลัง ตามที่ @ fixer1234 ยังแนะนำให้คุณอธิบายคำถามด้วยวิธีที่เหมาะสมมากจะช่วยให้เราหาทางออกที่ดี
—
Rajesh S
เปลี่ยนรหัสของคุณเป็น
—
MátéJuhász
For i = 10 To 1 step -1
ขอบคุณMátéJuhász ที่แก้ไขปัญหาล่าสุด มีประโยชน์มาก
—
Juanfran