#excel #vba
#excel #vba
Вопрос:
Я хочу выделить красным цветом все ячейки, содержащие слова «Цвет» и «Ширина».
С помощью имеющегося у меня кода я ввожу значение ячейки. Я хочу ввести слова «Цвет» и «Ширина».
Sub test()
aaa = InputBox("Enter value 1:")
bbb = InputBox("Enter value 2:")
Dim myrange As Range
Set myrange = ThisWorkbook.Worksheets("Tabell").UsedRange
For Each cell In myrange.Cells
If cell.Value = aaa Or cell.Value = bbb Then
cell.Interior.Color = 255
End If
Next
End Sub
Ответ №1:
Вы можете использовать Like
.
редактировать — обновлено, чтобы разрешить ввод нескольких терминов (непроверенных)
dim terms as new collection, term, deleteMe as boolean
do
term = Trim(InputBox("Enter value (leave blank to end entry)"))
if len(term)>0 then
terms.add term
else
exit do
end if
loop
if terms.count=0 then exit sub '<< no terms to check for
For Each cell In myrange.Cells
deleteMe = true
for each term in terms
if not cell.value like term amp; "*" then
deleteMe = false
exit for
end if
next term
if deleteMe then cell.value = ""
next cell
Комментарии:
1. Привет, Тим! Спасибо за ваш ответ 🙂
2. Я хочу, чтобы то, что я ввожу, было оставлено, а остальное было удалено. Итак, если, например, если я напишу: Объект и цвет, то таблица должна выглядеть как картинка, которую я отправил. т.е. все остальное должно быть удалено, поэтому остается только объект Bara и цвет. т.е. door1, door2 …. и желтый, зеленый…. Поэтому вместо того, чтобы отмечать то, что я пишу красным цветом, следует — Удалить всю остальную информацию
3. пожалуйста, мне нужна помощь с другой вещью: мой код просматривает забытое, увиденное сейчас:
4. Sub test() aaa = InputBox(«Информацию о каком объекте вы хотите отобразить:») Затемните myrange как диапазон, установите myrange = ThisWorkbook. Рабочие листы («Tabell»). Используйте диапазон для каждой ячейки в myrange. Ячейки, если нет (cell. Значение типа aaa и «*»), затем ячейка. Значение = «» End, если следующий конечный подраздел
5. Но проблема в том, что вы можете один раз записать то, что оно должно сохранить. То есть пользователь может ввести только один раз, а затем он удалит все, кроме того, что он пишет. Но я хочу, чтобы пользователь мог ввести несколько раз, прежде чем удалять все остальное. То есть я хочу, чтобы пользователь написал, например: Objects, Traps И SEN если он напишет слово END, то программа должна в конечном итоге спросить его, хочет ли он написать несколько вещей. Итак, я хочу, чтобы пользователь мог написать несколько вещей, а затем, когда он закончит писать END, а затем он перестанет его спрашивать.