ขอบคุณครับ แล้วถ้าเกิดผมมี Range Names เยอะๆหล่ะครับประมาณเกือบ 30ตัวเลย คิดว่า if else มันก็ยังยาวอยู่ดี ความจริงๆสิ่งที่ผมต้องการคือ ให้แต่ละแถวทำงานตรงตามชื่อของมันเองครับ เช่นดังนี้ครับ
Ex.A
If Target.Address = Range("AI_Model").Address Then
[BI_Model] = [AI_Model]
End If
ผมไปเจอตัวอย่างที่ loop หา Range Name ทั้งหมดมา แต่จะยัด Ex.A ใส่ใน Ex.B ยังไงให้เงื่อนไข(Range
(AI_Model))และคำสั่ง[BI_Model] =
[AI_Model] ตรงกัน โดยให้โค้ดสั้นที่สุดตามตัวอย่างใน Ex.B ครับ
Ex.B
Code: Select all
Sub NameRange()
Dim TargetNameRange As Name
For Each TargetNameRange In ActiveWorkbook.Names
' เอาใส่ตรงนี้ไหมครับ แล้วถ้าใส่แล้ว ต้องปรับสูตรยังไงให้เงื่อนไขและการทำงานมันตรงกันเหมือนตัวอย่างด้านบน(Ex.A)
If Target.Address = Range("AI_Model").Address Then
[BI_Model] = [AI_Model] ' <--- ตรงนี้ก็อยากให้มัน(เช่น AI_Model)
'วิ่งหากันเองจนเจอกันบรรทัดก่อนหน้า(Range("AI_Model").Address)
'ประมาณนี้ครับ
End If
Next TargetNameRange
End Sub
ต้องแก้อย่างไร ถึงจะลงตัวครับ