Page 1 of 1

การแปลง html ใน excel

Posted: Thu Sep 05, 2013 11:22 am
by janpranot
สวัสดีครับ
รบกวนช่วยเหลือเรื่องการแปลง html ใน excel หน่อยครับ

รายละเอียดดังนี้

column B เป็น code html ซึ่งจะทำการแปลงเป็น font ธรรมดาตาม code html ซึ่งสามารถทำได้แล้วครับ โดย code ที่แปลงได้จะทับที่ cells เดิมเลยครับ

แต่กรณีมีหลายๆ cells ใน column B ยังไม่สามารถดำเนินการได้ รบกวนชี้แนะให้หน่อยครับ

code อยู่ใน Module1 ครับ

ผมได้แนบไฟล์มาด้วยครับ
ขอบคุณครับผม

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 12:22 pm
by snasui
:D อ่านแล้วยังไม่เคลียร์ครับ ช่วยทำตัวอย่างคำตอบที่ต้องการมาด้วยเพื่อจะได้เข้าใจตรงกันครับ

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 12:37 pm
by janpranot
ครับผม

คือใน excel จะมี column a และ b

column b จะเป็น code html ซึ่งผมได้เขียน vba ตอน workbook_open ให้ทำการเปลี่ยนจาก code html ดังนี้ครับ

<font color = "red">test<font/> เป็น test

แต่ถ้าผมต้องการทำทั้ง colum b ต้องทำยังไงครับ เขียนสูตรไม่ถูกนะครับ

ผมได้แนบไฟล์ตัวอย่างที่ run ได้ cells เดียวมาให้ดูครับ

ขอบคุณครับ

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 1:20 pm
by snasui
:D ลองเปลี่ยน 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

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 1:43 pm
by janpranot
ขออธิบายใหม่นะครับ ผม

คือที่ ต้องการให้โปรแกรมทำงานคือ อยากให้ทุกๆ cell ใน column B ที่มีข้อมูล ผ่าน Process Public Function StripHTML นี้นะครับ

เพราะเมื่อแต่ละ cells ผ่าน Public Function StripHTML นี้จะได้ข้อความตาม code html นะครับ

เช่น ตัวสีแดง ตัวหนา ตัวเอียง เป็นต้นนะครับ

ซึ่ง เมื่อผ่าน Public Function StripHTML แล้วข้อมูลที่ได้จาก Process นี้จะไปแทนที่ cells น้ันๆนะครับ


ขอบคุณและขอโทษด้วยครับที่อธิบายไม่กระจ่างชัด
:cry:

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 5:57 pm
by snasui
:D ลองปรับ 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

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 9:42 pm
by janpranot
ขอบคุณมากครับผม ได้ประโยชน์มากเลยครับ ขอถามเป็นความรู้อีกเรื่องครับ :D

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 ด้านบนนะครับ




ขอบคุณมากครับ
:thup:

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 10:11 pm
by snasui
:D การที่จะทราบว่าตอนนี้เราคลิกเซลล์ไหนสามารถใช้ Code Selection.Address เพื่อให้ผลลัพธ์เป็นตำแหน่งเซลล์ที่เราคลิกได้ครับ

ส่วนการแทนค่าใน Range("m3") ไม่ทราบว่าที่จริงแล้วต้องการจะทำอะไรครับ :?:

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 10:30 pm
by janpranot
ส่วนการแทนค่าใน Range("m3") ไม่ทราบว่าที่จริงแล้วต้องการจะทำอะไรครับ

เพื่อที่จะเอาค่าใน cell ที่ทำการ click ไปทำการ process ต่อนะครับ เช่น ถ้าคลิ้ก m4 ก็ให้ได้ค่าที่ cell นั้นน่ะครับ.

ขอบคุณมากครับผม

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 10:37 pm
by snasui
:D คำว่า Target ใน Code คือ Range ที่เลือกคลิก ไม่จำเป็นต้องไปหาที่ไหนอีกครับ

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 10:48 pm
by janpranot
ByVal Target As Range นี่ใช่มั้ยครับ อย่างนี้เราก็สามารถ get cell ที่คลิ๊กได้จากที่นี่เลยใช่หรือเปล่าครับ

:thup: :cp: :D ขอบคุณมากๆครับ

Re: การแปลง html ใน excel

Posted: Thu Sep 05, 2013 10:51 pm
by snasui
:D ถูกต้องครับ