與我一起散步。刪除Excel單元格格式文本中的標籤
我已經建立了一個Access應用程序在我公司的一個內部項目管理數據。此應用程序的功能之一是查詢數據庫,然後將查詢輸出到Excel電子表格,然後將電子表格格式化爲規格。
其中一個輸出的細胞是從所述數據庫中的富文本備註字段大量文本的。當富文本發送到Excel它承載的HTML標籤表明大膽或斜體,因此對於輸出我要補充的格式化和刪除標記。
這是我需要格式化文本的示例(這段文字是在一個單元格):
For each participant, record 1 effort per lesson delivered
• Time Spent = # minutes spent on lesson
<strong>OR</strong>
For each participant, record 1 effort per month
• Time Spent = total # minutes spent on lessons that month
<strong>Note:</strong> Recording 1 effort per lesson is recommended but not required
<strong>Note:</strong> Use groups function in ABC when appropriate (see <u>Working With Groups</u> in ABC document library on the ABC portal)
我有一個三個整潔的小遞歸函數來格式化文本,這裏是加粗功能:
Function BoldCharacters(rng As Range, Optional ByVal chrStart As Long)
'This will find all the "<strong></strong>" tags and bold the text in between.
Dim tagL As Integer
tagL = 8
rng.Select
If chrStart = 0 Then chrStart = 1
b1 = InStr(chrStart, ActiveCell.Value, "<strong>") + tagL
If b1 = tagL Then Exit Function
b2 = InStr(b1, ActiveCell.Value, "</strong>")
ActiveCell.Characters(Start:=b1, Length:=b2 - b1).Font.Bold = True
'Remove the tags
'ActiveCell.Characters(Start:=1, Length:=1).Delete
'ActiveCell.Characters(Start:=b2 - tagL, Length:=tagL + 1).Delete
'Recursion to get all the bolding done in the cell
Call BoldCharacters(ActiveCell, b2 + tagL + 1)
End Function
現在是這個問題。這很好地格式化文本。但「ActiveCell.Characters.Delete」的方法,當我嘗試使用它,因爲單元格中包含超過255個字符刪除標籤失敗。所以我不能使用刪除方法。
當我這樣做:
With xlApp.Selection
.Replace what:="<strong>", replacement:=""
的標記都刪除,但格式化全部被毀!那麼有什麼意義!?
我在尋找我的格式化文本和刪除標記的方式。我正在考慮把大量文本和'分塊'到許多單元格中,處理格式化和重新組裝,但這聽起來很困難,容易出錯,甚至可能不起作用。
任何想法!?
謝謝!
我認爲這是我現在領導的方向。我將不得不創建一些數據結構來描述在刪除標籤之前格式必須去的位置。 – Jesse 2011-05-05 15:56:19