Read the comments in the first macro to see how to use.
<font face=Calibri><SPAN style="color:#00007F">Option</SPAN> <SPAN style="color:#00007F">Explicit</SPAN><br><br><SPAN style="color:#00007F">Sub</SPAN> ExtractHeadingsFromCurrentColumn()<br><SPAN style="color:#007F00">' Run down the current column and extract _<br> bold headers from each paragraph in each _<br> cell. The headers are placed in column B.</SPAN><br><br> <SPAN style="color:#00007F">Dim</SPAN> lRLast <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, lR <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, lC <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br> <br> lC = ActiveCell.Column<br> lRLast = Cells(Rows.Count, lC).End(xlUp).Row<br> <br> <SPAN style="color:#00007F">For</SPAN> lR = 1 <SPAN style="color:#00007F">To</SPAN> lRLast<br> SplitCellinPara Cells(lR, lC), Columns("B").Column<br> <SPAN style="color:#00007F">Next</SPAN> lR<br> <br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> SplitCellinPara(rCheck <SPAN style="color:#00007F">As</SPAN> Range, lColOutp <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>)<br><SPAN style="color:#007F00">' Split the text in each cell in paragraphs (separated _<br> by two LineFeeds (2x Alt+Enter))and get the bold heading _<br> (if exists) for each paragraph. Put the heading _<br> in the next available cell in column lColOutp</SPAN><br> <SPAN style="color:#00007F">Dim</SPAN> lP <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br> <SPAN style="color:#00007F">Dim</SPAN> sHead <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN><br> <br> lP = 0<br> <SPAN style="color:#00007F">If</SPAN> rCheck.Value <> vbNullString <SPAN style="color:#00007F">Then</SPAN><br> <SPAN style="color:#00007F">Do</SPAN><br> sHead = getBold(rCheck, lP + 1)<br> PutHeading lColOutp, sHead<br> lP = InStr(lP + 1, rCheck, vbLf & vbLf) + 1<br> <SPAN style="color:#00007F">Loop</SPAN> <SPAN style="color:#00007F">While</SPAN> lP > 1<br> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br> <br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Function</SPAN> getBold(rPar <SPAN style="color:#00007F">As</SPAN> Range, <SPAN style="color:#00007F">ByVal</SPAN> lStart <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>) <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN><br><SPAN style="color:#007F00">' Return any bold text at start of text in rPar starting at character lStart</SPAN><br> <SPAN style="color:#00007F">Dim</SPAN> lSpace <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, lBold <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, lLen <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br> <br> lSpace = lStart<br> <SPAN style="color:#00007F">Do</SPAN><br> lBold = lSpace<br> lSpace = InStr(lSpace + 1, rPar, " ")<br> <SPAN style="color:#00007F">Loop</SPAN> <SPAN style="color:#00007F">While</SPAN> rPar.Characters(Start:=lStart, Length:=lSpace - lStart).Font.Bold<br> lBold = lBold - 1<br> <SPAN style="color:#00007F">If</SPAN> lBold > lStart <SPAN style="color:#00007F">Then</SPAN><br> getBold = Mid(rPar, lStart, lBold - lStart + 1)<br> <SPAN style="color:#00007F">Else</SPAN><br> getBold = vbNullString<br> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN><br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Function</SPAN><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> PutHeading(<SPAN style="color:#00007F">ByVal</SPAN> lColNum <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, sHeading <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>)<br><SPAN style="color:#007F00">' Enter the heading string into the next cell in column lColNum</SPAN><br> <SPAN style="color:#00007F">Dim</SPAN> lRow <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br> lRow = Cells(Rows.Count, lColNum).End(xlUp).Row + 1<br> Cells(lRow, lColNum).Value = sHeading<br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br></FONT>
Paste all this code in a VBA macro module. If you need help with that let me know