ฉันต้องการแทนที่ "1" ในคอลัมน์ด้วยข้อความส่วนหัวของคอลัมน์
มันบอกเกี่ยวกับการอ้างอิงแบบวงกลม ... มีวิธีการที่จะบรรลุเป้าหมายนี้หรือไม่?
paste values
ลงในคอลัมน์ที่ถูกต้องหรือทำไมไม่ใช้เพียงค้นหาและแทนที่?
ฉันต้องการแทนที่ "1" ในคอลัมน์ด้วยข้อความส่วนหัวของคอลัมน์
มันบอกเกี่ยวกับการอ้างอิงแบบวงกลม ... มีวิธีการที่จะบรรลุเป้าหมายนี้หรือไม่?
paste values
ลงในคอลัมน์ที่ถูกต้องหรือทำไมไม่ใช้เพียงค้นหาและแทนที่?
คำตอบ:
นี่สำหรับคอลัมน์A ที่มีส่วนหัวในแถว# 1 :
เรียกใช้แมโครแบบสั้นนี้:
Sub UseHeader()
Dim v As String, rng As Range
Set rng = Range("A:A")
v = rng(1).Value
rng.Replace What:="1", replacement:=v
End Sub
ผลลัพธ์:
ในการทำเช่นนี้สำหรับหลายคอลัมน์คุณต้องระบุว่าคอลัมน์ใดมีส่วนหัว
=INDEX($D$1:$F$1,MATCH(1,D2:F2,0))
และผู้ใช้สามารถเปลี่ยนส่วนหัวและค่าจะเปลี่ยนโดยไม่ต้องแก้ไขค่าฮาร์ดโค้ดจำนวนมาก
ทางออกที่ง่ายมาก:
พูดว่ามีสามคอลัมน์ที่มีหัวในแถว 1: A1 = X, B1 = Y, C1 = Z
คัดลอกข้อมูลทั้งหมดของสามคอลัมน์และวางในคอลัมน์ D, E, F และวางในคอลัมน์ G, H, I อีกครั้ง
ตอนนี้อยู่ใน D, E, F Set แล้วใส่สูตร:
D2 = D1, E2 = E1 และ F2 = F1 คัดลอกสูตรเหล่านี้ลงในแถว
ในคอลัมน์ G, H และ I ป้อนสูตร: G2: = ถ้า (A2 = 1, D2, "") คัดลอกสูตรของ G2 ใน H2 และ I2
คัดลอกสูตร G2, H2 และ I2 ลงในแถว
ดังนั้นคุณจะได้ผลลัพธ์ที่ต้องการในชุดที่ 3 ของคอลัมน์ G, H และ I
คัดลอกภูมิภาคของ G, H และ I และวางค่า
หากคุณต้องการตอนนี้คอลัมน์ A, B .. F สามารถลบได้