Я новичок, пытающийся выяснить стратегию.
Пример данных
Таблица: Ингредиенты
Поле: FormulaIngredients
Содержание поля (длинный текст в формате RTF): брюква, лук-порей, морковь, пшеница, мука, масло, сахар, яйца, молоко, арахисовое масло, кукурузная мука из цельного зерна, овсяное зерно, капуста, куркума, гвоздика , специи, натуральный говяжий аромат, говяжий фарш.
Таблица: RestrictedTable
Столбец с 100 значениями для сравнения: RestrictedItem
Пример значений столбца:
молоко
печь
ложка
морковь
горчичный
пара
Желаемый результат : Хотите выделить / изменить шрифт совпадений в поле FormulaIngredients, которые соответствуют любому из ~ 100 значений в столбце таблицы: RestrictedItem. Представьте, что выделенные курсивом слова выделены красным.
брюква, лук-порей, морковь , пшеница, мука, масло сливочное, сахар, яйца, молоко , арахисовое масло, кукурузная мука, цельнозерновой овес, капуста, куркума, гвоздика , специи, натуральный говяжий аромат, говяжий фарш, горчица .
Или скопируйте и замените содержимое FormulaIngredients в новое поле, которое применяет красный цвет к тем словам, которые соответствуют столбцу таблицы: RestrictedItem.
Я исследовал ...
InStr Проблема : я не хочу передавать строку информации в форму / отчет, а также не заботится о позиции, в которой была найдена подстрока, я хочу чтобы найти все из них, в любом случае & дубликаты в порядке.
Dim strTemp, strTempEnd As String
Dim strSearch As String
strSearch = Me.OpenArgs
If InStr(1, Me.Text0, strSearch) <> 0 Then
strTemp = Left(Me.Text0, InStr(1, Me.Text0, strSearch) - 1)
strTempEnd = Mid(Me.Text0, Len(strTemp) + Len(strSearch) + 1)
strTemp = strTemp & "<font color=red>" & strSearch & "</font>"
strTemp = strTemp & strTempEnd
Me.Text0 = strTemp
End If
HTML Проблема : Это решение сравнивает 2 столбца данных. Я хочу сравнить одно поле с таблицей значений и найти несколько совпадений в одном длинном текстовом поле.
Public Function MyCompare(c1t As Variant, c2t As Variant)
Dim strResult As String
Dim s As String
Dim i As Integer
Dim bolSame As Boolean
If IsNull(c1t) Or IsNull(c2t) Then Exit Function
bolSame = True
For i = 1 To Len(c2t)
s = Mid(c2t, i, 1)
If Mid(c1t, i, 1) = s Then
If bolSame = False Then
bolSame = True
s = "</strong></font>" & s
End If
Else
If bolSame = True Then
bolSame = False
s = "<font color=red><strong>" & s
End If
End If
strResult = strResult & s
Next
If bolSame = False Then
strResult = strResult & "</strong></font>"
End If
MyCompare = strResult
End Function
VBA Проблема : мне нужно будет набрать все 100 ключевых слов в моей таблице, которые я хочу сравнить / найти в поле формы длинного текста, а ЗАМЕНА - поиск с учетом регистра , Есть ли способ сравнить с таблицей значений?
Me.{ControlName}.Value = Replace(Me.{ControlName}.Value _
, "red", "<font color=red>red</font>")