snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
janpranot
Member
Posts: 23 Joined: Wed Jul 13, 2011 9:21 pm
#1
Post
by janpranot » Thu Sep 05, 2013 11:22 am
สวัสดีครับ
รบกวนช่วยเหลือเรื่องการแปลง html ใน excel หน่อยครับ
รายละเอียดดังนี้
column B เป็น code html ซึ่งจะทำการแปลงเป็น font ธรรมดาตาม code html ซึ่งสามารถทำได้แล้วครับ โดย code ที่แปลงได้จะทับที่ cells เดิมเลยครับ
แต่กรณีมีหลายๆ cells ใน column B ยังไม่สามารถดำเนินการได้ รบกวนชี้แนะให้หน่อยครับ
code อยู่ใน Module1 ครับ
ผมได้แนบไฟล์มาด้วยครับ
ขอบคุณครับผม
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#2
Post
by snasui » Thu Sep 05, 2013 12:22 pm
อ่านแล้วยังไม่เคลียร์ครับ ช่วยทำตัวอย่างคำตอบที่ต้องการมาด้วยเพื่อจะได้เข้าใจตรงกันครับ
janpranot
Member
Posts: 23 Joined: Wed Jul 13, 2011 9:21 pm
#3
Post
by janpranot » Thu Sep 05, 2013 12:37 pm
ครับผม
คือใน excel จะมี column a และ b
column b จะเป็น code html ซึ่งผมได้เขียน vba ตอน workbook_open ให้ทำการเปลี่ยนจาก code html ดังนี้ครับ
<font color = "red">test<font/> เป็น test
แต่ถ้าผมต้องการทำทั้ง colum b ต้องทำยังไงครับ เขียนสูตรไม่ถูกนะครับ
ผมได้แนบไฟล์ตัวอย่างที่ run ได้ cells เดียวมาให้ดูครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Sep 05, 2013 1:20 pm
ลองเปลี่ยน Procedure test เป็นตามด้านล่างครับ
Code: Select all
Sub test()
Dim r As Range
Dim rAll As Range
With Sheets(1)
Set rAll = .Range("b2", .Range("b" & Rows.Count).End(xlUp))
End With
For Each r In rAll
r = Replace(Right(r, Len(r) - InStr(2, r, ">")), "<font/>", "")
Next r
End Sub
janpranot
Member
Posts: 23 Joined: Wed Jul 13, 2011 9:21 pm
#5
Post
by janpranot » Thu Sep 05, 2013 1:43 pm
ขออธิบายใหม่นะครับ ผม
คือที่ ต้องการให้โปรแกรมทำงานคือ อยากให้ทุกๆ cell ใน
column B ที่มีข้อมูล ผ่าน Process Public Function StripHTML นี้นะครับ
เพราะเมื่อแต่ละ cells ผ่าน Public Function StripHTML นี้จะได้ข้อความตาม code html นะครับ
เช่น ตัวสีแดง ตัวหนา ตัวเอียง เป็นต้นนะครับ
ซึ่ง เมื่อผ่าน Public Function StripHTML แล้วข้อมูลที่ได้จาก Process นี้จะไปแทนที่ cells น้ันๆนะครับ
ขอบคุณและขอโทษด้วยครับที่อธิบายไม่กระจ่างชัด
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu Sep 05, 2013 5:57 pm
ลองปรับ Code เป็นตามด้านล่างครับ
Code: Select all
Dim d As Double
Sub test()
Dim dbl As Double
dbl = Range("b" & Rows.Count).End(xlUp).Row
For d = 2 To dbl
Cells(d, 2).Select
StripHTML (Cells(d, 2))
Next d
End Sub
Public Function StripHTML(sInput As String) As String
Dim rTemp As Range
Dim oData As DataObject
Set oData = New DataObject
oData.SetText "<html><style>br{mso-data-placement:same-cell;}</style>" & sInput & "</html>"
oData.PutInClipboard
Set rTemp = Cells(d, 2)
rTemp.Parent.PasteSpecial "Unicode Text"
StripHTML = rTemp.Text
Set rTemp = Nothing
Set oData = Nothing
End Function
janpranot
Member
Posts: 23 Joined: Wed Jul 13, 2011 9:21 pm
#7
Post
by janpranot » Thu Sep 05, 2013 9:42 pm
ขอบคุณมากครับผม ได้ประโยชน์มากเลยครับ ขอถามเป็นความรู้อีกเรื่องครับ
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target,
Range("m3") ) Is Nothing Then _
ShowIE
End Sub
คำสั่งคลิ๊ก cells ด้านบน ในกรณีที่ column M มีข้อมูลที่ไม่แน่นอนว่ามีกี่ cells ครับ
ถ้า ต้องการคลิ๊กที่ column M ไม่ว่าจะคลิ๊ก cells อะไร
จะมีคำสั่งอะไรที่จะบอกได้ครับ ว่าเราคลิ๊กที่ cells m... ไหน เพื่อต้องการนำไปแทนค่า ตัวสีแดงของ code ด้านบนนะครับ
ขอบคุณมากครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Thu Sep 05, 2013 10:11 pm
การที่จะทราบว่าตอนนี้เราคลิกเซลล์ไหนสามารถใช้ Code
Selection.Address เพื่อให้ผลลัพธ์เป็นตำแหน่งเซลล์ที่เราคลิกได้ครับ
ส่วนการแทนค่าใน
Range("m3") ไม่ทราบว่าที่จริงแล้วต้องการจะทำอะไรครับ
janpranot
Member
Posts: 23 Joined: Wed Jul 13, 2011 9:21 pm
#9
Post
by janpranot » Thu Sep 05, 2013 10:30 pm
ส่วนการแทนค่าใน Range("m3") ไม่ทราบว่าที่จริงแล้วต้องการจะทำอะไรครับ
เพื่อที่จะเอาค่าใน cell ที่ทำการ click ไปทำการ process ต่อนะครับ เช่น ถ้าคลิ้ก m4 ก็ให้ได้ค่าที่ cell นั้นน่ะครับ.
ขอบคุณมากครับผม
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Thu Sep 05, 2013 10:37 pm
คำว่า Target ใน Code คือ Range ที่เลือกคลิก ไม่จำเป็นต้องไปหาที่ไหนอีกครับ
janpranot
Member
Posts: 23 Joined: Wed Jul 13, 2011 9:21 pm
#11
Post
by janpranot » Thu Sep 05, 2013 10:48 pm
ByVal Target As Range นี่ใช่มั้ยครับ อย่างนี้เราก็สามารถ get cell ที่คลิ๊กได้จากที่นี่เลยใช่หรือเปล่าครับ
ขอบคุณมากๆครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Thu Sep 05, 2013 10:51 pm
ถูกต้องครับ