我正在尝试编写一个 Word宏,该宏从 Excel 单元格中获取数据,并以此为替换 Word 文件中的单词数据。
我的第一个问题是替换超过250个字符,这些问题已得到修复。 但这导致了一个新问题。 我替换 Word文档中的单词后,Excel文件中的数据将被格式化,并且这种格式化将被销毁。
我的替换功能如下:
Sub ReplaceText(strSearch As String, strReplace As String)
Dim sSplit As String: sSplit = "<Å*Å>"
Dim sLeft As String
Dim sLarge As Boolean: sLarge = True
Do While sLarge = True
If Len(strReplace) > 251 Then
sLeft = Left(strReplace, 250) & sSplit
strReplace = Right(strReplace, Len(strReplace) - 250)
Call Split_Replace(strSearch, sLeft)
ElseIf Len(strReplace) <= 251 Then
Call Split_Replace(strSearch, strReplace)
sLarge = False
End If
strSearch = sSplit
Loop
End Sub
Sub Split_Replace(strSearch As String, strReplace As String)
With Selection.Find
.Text = strSearch
.Replacement.Text = strReplace
.Forward = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
End Sub
我这样称呼:
Call ReplaceText("intro", MyWB.Sheets(Geschlecht).Cells(7, 4)
但是所有类似(粗体,斜体,下划线,编号等)的内容都将被删除。 如果我使用MsgBox向我显示他从excel单元格中获得的数据,则其格式为: 例如在替换功能
中MsgBox strReplace
显示正确的格式。
我希望你们中的一个知道如何解决此问题,或者可以向我提示正确的方向。
拉尔斯问候