Page 1 of 1
VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 9:14 am
by Supachok
เรียน ท่านผู้รู้
เราสามารถใช้สูตรที่รวมข้อความเป็น Range ได้หรือไม่ใน excel.
วิธีที่2 -3 เป็นการนับ cell
วิธีที่ 4 เป็นการใช้ define name กำหนด range. ไม่สามารถแสดงค่า
ลองมั่วเขียน VBA ดูผลสุดท้ายได้ code ตามข้างล่าง ใช้ 3 ตัวแปร.
1 /$C$1 =VBA
2 / $C$2 =A1&A2&A3
3 / $C$3 =CONCATENATE(A1,A2,A3)
4/ $C$4 =CONCATENATE(fff)
Code: Select all
Sub xx()
For x = 1 To Range("a" & Rows.Count).End(xlUp).Row
r = Cells(x, 1).Value
t = t & r
Next x
[C1].Value = t
End Sub
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 9:14 pm
by snasui

อ่านแล้วไม่เข้าใจครับ
กรุณาอธิบายมาใหม่พร้อมทั้งชี้ให้เห็นว่าต้องการคำตอบเป็นแบบใด มีหลักการคิดอย่างไรจึงได้ค่าเป็นเช่นนั้น
หากใช้ Code กรุณาแนบ Code นั้นมาในไฟล์ตัวอย่างด้วย ไฟล์ที่จะแนบ Code ได้ควรมีนามสกุลเป็น .xlsm เป็นอย่างน้อยครับ
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 9:29 pm
by Supachok
แนบไฟล์ใหม่ครับ xlsm.
เรียน ท่านอาจารย์
ที่ต้องการถามคือมี สูตรใดๆ ที่สามารถรวมค่าใดๆ จากแต่ละ Cells โดยใช้กำหนดสูตรจาก Range(a1:a3)
ตามตัวอย่างแนบคือรวม ค่าจาก A1,A2,A3 ไปยัง C1
รูปแบบสูตรที่พยายามใช้หา
1 /$C$1 =VBA
2 / $C$1 =A1&A2&A3
3 / $C$1 =CONCATENATE(A1,A2,A3)
4/ $C$1 =CONCATENATE(fff) = define name
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 9:34 pm
by snasui

เข้าใจว่าต้องการเขียนฟังก์ชั่นขึ้นมาใช้เอง
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Function xx(allRng As range) As String
Dim r As range, t As String
For Each r In allRng
t = t & r.Value
Next r
xx = t
End Function
จากนั้นที่เซลล์ใด ๆ คีย์สูตร
=xx(A1:A3)
Enter > สังเกตผลลัพธ์ที่ได้
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 9:41 pm
by Supachok
เรียน ท่านอาจารย์
้
ผมยังไม่สามารถเข้าใจการเขียน VBA ได้มากแบบนั้น
แต่ที่อาจารย์แนะนำมานั้นถูกต้องแล้ว
เพราะ formula ใน excel คงไม่มี function นี้
ขอบคุณมากครับ
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 10:19 pm
by Supachok
เรียน ท่านอาจารย์
VBA Subprocedure กด F8 step into
ใช้ในการตรวจ code
VBA function run หรือ มี step into หรือไหมครับ
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 10:33 pm
by snasui

คลิกในแถบที่ลูกศรชี้ตรงบรรทัดที่ต้องการจะเริ่ม Step Into จากนั้นไปคลิกในเซลล์ที่มีสูตรใน Worksheet > กดแป้น F2 แล้ว Enter จากนั้นค่อยกดแป้น F8 เพื่อ Run ไปทีละ Step ครับ
Re: VBA Concentrate / Merge (range)
Posted: Thu Feb 21, 2019 10:42 pm
by Supachok