可以在用于搜索结果的Inkedit框中突出显示特定文本?

问题描述 投票:0回答:1
这是我正在使用的代码:

If matchFound Then results = results & row.Cells(1, 1).Value & " | " & _ row.Cells(1, 2).Value & " | " & _ row.Cells(1, 3).Value & " | " & _ "se" & row.Cells(1, 4).Value & " | " & _ "ep" & row.Cells(1, 5).Value & " | " & _ row.Cells(1, 6).Value & " | " & _ row.Cells(1, 7).Value & " | " & _ row.Cells(1, 8).Value & " | " & _ row.Cells(1, 9).Value & vbCrLf & String(284, "-") & vbCrLf resultCount = resultCount + 1 End If
提供搜索的结果,并在每个参数之间放置一个条(|)。该代码效果很好,但是当长度不同的结果有十几个结果时,它可能会令人困惑,而且很难破译。
我的想法是突出显示每个替代参数,以便可以清楚地看到标题,艺术家或年份等。
我尝试添加“”和“ 0”,但是最终要做的是在结果框中包括字符。
我正在使用一个Inkedit盒子,因为至少对我来说,RichTextbox似乎不再可用。 Inkedit框使我滚动和格式化功能,而不是简单的文本框。
我不想重新创建代码作为不同的东西,我只想将大胆或突出显示在替代文本中。那将在细胞(1,1),(1,3),(1,5),(1,7)和(1,9)中。
我知道“单元格(1,1).font.bold = true”,但我不确定我可以在哪里适应而不会发生任何错误。
    

there是使用填充和固定宽的字体来创建具有对齐值的纯文本表的一个非常基本的示例:

Private Sub UserForm_Activate() Dim txt As String txt = RangeToTable(ActiveSheet.Range("A1:H20")) Me.InkEdit1.Text = txt Me.InkEdit1.Font = "Courier" End Sub Private Function RangeToTable(rng As Range) As String Dim txt As String, r As Long, c As Long, v, i As Long Dim arr, nC As Long, nR As Long, maxLens() As Long arr = rng.Value nR = UBound(arr, 1) '# of rows nC = UBound(arr, 2) '# of columns ReDim maxLens(1 To nC) 'for max. length in each column For c = 1 To nC 'start by finding max length value for each column For r = 1 To nR v = Len(arr(r, c)) If v > maxLens(c) Then maxLens(c) = v Next r Next c txt = "" For r = 1 To nR 'build the text with the appropriate space padding txt = txt & "|" For c = 1 To nC v = arr(r, c) i = maxLens(c) + 1 'add a little padding txt = txt & Left(v & String(i, " "), i) & "|" Next c txt = txt & vbLf Next r RangeToTable = txt End Function
vba formatting richtextbox userform
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.