Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Добавить в выводимые данные доп.строку - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Добавить в выводимые данные доп.строку
Milirina555 Дата: Среда, 21.05.2025, 12:53 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Добрый день! У меня есть код, который в необходимом диапазоне на странице «Все статьи» ищет текст и выводит их на страницу «Поиск». Подскажите, как сделать привязку к найденным значениям. Например, у меня на странице «Все статьи» в столбце В есть краткие комментарии к статьям в ячейках С. Нужно, чтобы комментарии тоже отображались на странице «Поиск»

Sub Поиск()
Dim searchValue As String
Dim cell As Range, out(), ct&
Dim result As String
Dim searchRange As Range
' Получаем значение для поиска из ячейки B6
searchValue = ThisWorkbook.Sheets("Поиск").Range("B6").Value
' Указываем диапазон для поиска
Set searchRange = ThisWorkbook.Sheets("Все статьи").Range("C1:C20")
ReDim out(1 To searchRange.Rows.Count, 1 To 1)
' Инициализируем переменную для хранения результата
result = ""

' Проходим по каждой ячейке в указанном диапазоне
For Each cell In searchRange
If InStr(1, cell.Value, searchValue, vbTextCompare) > 0 Then
' Если найдено совпадение, добавляем значение в результат
ct = ct + 1
out(ct, 1) = cell.Value
End If
Next cell

' Выводим найденные значения в ячейку B10
If ct > 0 Then
With ThisWorkbook.Sheets("Поиск")
.Range("B10", .Range("B10").End(xlDown)).ClearContents
.Range("B10").Resize(ct, 1) = out

' Выделяем ячейки светло-жёлтым цветом
With .Range("B10").Resize(ct, 1)
.Interior.Color = RGB(255, 255, 204) ' Светло-жёлтый цвет
' Добавляем границу
With .Borders
.LineStyle = xlContinuous
.Color = RGB(0, 0, 0) ' Чёрный цвет границы
.Weight = xlThin
End With
End With
End With
End If
End Sub
 
Ответить
СообщениеДобрый день! У меня есть код, который в необходимом диапазоне на странице «Все статьи» ищет текст и выводит их на страницу «Поиск». Подскажите, как сделать привязку к найденным значениям. Например, у меня на странице «Все статьи» в столбце В есть краткие комментарии к статьям в ячейках С. Нужно, чтобы комментарии тоже отображались на странице «Поиск»

Sub Поиск()
Dim searchValue As String
Dim cell As Range, out(), ct&
Dim result As String
Dim searchRange As Range
' Получаем значение для поиска из ячейки B6
searchValue = ThisWorkbook.Sheets("Поиск").Range("B6").Value
' Указываем диапазон для поиска
Set searchRange = ThisWorkbook.Sheets("Все статьи").Range("C1:C20")
ReDim out(1 To searchRange.Rows.Count, 1 To 1)
' Инициализируем переменную для хранения результата
result = ""

' Проходим по каждой ячейке в указанном диапазоне
For Each cell In searchRange
If InStr(1, cell.Value, searchValue, vbTextCompare) > 0 Then
' Если найдено совпадение, добавляем значение в результат
ct = ct + 1
out(ct, 1) = cell.Value
End If
Next cell

' Выводим найденные значения в ячейку B10
If ct > 0 Then
With ThisWorkbook.Sheets("Поиск")
.Range("B10", .Range("B10").End(xlDown)).ClearContents
.Range("B10").Resize(ct, 1) = out

' Выделяем ячейки светло-жёлтым цветом
With .Range("B10").Resize(ct, 1)
.Interior.Color = RGB(255, 255, 204) ' Светло-жёлтый цвет
' Добавляем границу
With .Borders
.LineStyle = xlContinuous
.Color = RGB(0, 0, 0) ' Чёрный цвет границы
.Weight = xlThin
End With
End With
End With
End If
End Sub

Автор - Milirina555
Дата добавления - 21.05.2025 в 12:53
i691198 Дата: Среда, 21.05.2025, 19:21 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 421
Репутация: 130 ±
Замечаний: 0% ±

2016
Добрый вечер. Насколько понял, подправил ваш код. Пример вы забыли приложить, проверить не на чем.
[vba]
Код
Sub Поиск()
  Dim searchValue As String
  Dim cell As Range, out(), ct&
  Dim result As String
  Dim searchRange As Range
  ' Получаем значение для поиска из ячейки B6
  searchValue = ThisWorkbook.Sheets("Поиск").Range("B6").Value
  ' Указываем диапазон для поиска
  Set searchRange = ThisWorkbook.Sheets("Все статьи").Range("C1:C20")
  ReDim out(1 To searchRange.Rows.Count, 1 To 2) '#дополняем размерность 2-го индекса
  ' Инициализируем переменную для хранения результата
  result = ""
  ' Проходим по каждой ячейке в указанном диапазоне
  For Each cell In searchRange
    If InStr(1, cell.Value, searchValue, vbTextCompare) > 0 Then
      ' Если найдено совпадение, добавляем значение в результат
      ct = ct + 1
      out(ct, 1) = cell.Value
      out(ct, 2) = cell.Offset(, 1).Value '#значение из соседнего столбца в массив
    End If
  Next cell
  ' Выводим найденные значения в ячейку B10
  If ct > 0 Then
    With ThisWorkbook.Sheets("Поиск")
      .Range("B10", .Range("B10").End(xlDown)).ClearContents
      .Range("B10").Resize(ct, 2) = out '#расширяем диапазон вывода на один столбец
      ' Выделяем ячейки светло-жёлтым цветом
      With .Range("B10").Resize(ct, 2)
        .Interior.Color = RGB(255, 255, 204) ' Светло-жёлтый цвет
        ' Добавляем границу
        With .Borders
          .LineStyle = xlContinuous
          .Color = RGB(0, 0, 0) ' Чёрный цвет границы
          .Weight = xlThin
        End With
      End With
    End With
  End If
End Sub
[/vba]
P.S. Ознакомьтесь с правилами форума и оформляйте код тегами, так читать неудобно.
 
Ответить
СообщениеДобрый вечер. Насколько понял, подправил ваш код. Пример вы забыли приложить, проверить не на чем.
[vba]
Код
Sub Поиск()
  Dim searchValue As String
  Dim cell As Range, out(), ct&
  Dim result As String
  Dim searchRange As Range
  ' Получаем значение для поиска из ячейки B6
  searchValue = ThisWorkbook.Sheets("Поиск").Range("B6").Value
  ' Указываем диапазон для поиска
  Set searchRange = ThisWorkbook.Sheets("Все статьи").Range("C1:C20")
  ReDim out(1 To searchRange.Rows.Count, 1 To 2) '#дополняем размерность 2-го индекса
  ' Инициализируем переменную для хранения результата
  result = ""
  ' Проходим по каждой ячейке в указанном диапазоне
  For Each cell In searchRange
    If InStr(1, cell.Value, searchValue, vbTextCompare) > 0 Then
      ' Если найдено совпадение, добавляем значение в результат
      ct = ct + 1
      out(ct, 1) = cell.Value
      out(ct, 2) = cell.Offset(, 1).Value '#значение из соседнего столбца в массив
    End If
  Next cell
  ' Выводим найденные значения в ячейку B10
  If ct > 0 Then
    With ThisWorkbook.Sheets("Поиск")
      .Range("B10", .Range("B10").End(xlDown)).ClearContents
      .Range("B10").Resize(ct, 2) = out '#расширяем диапазон вывода на один столбец
      ' Выделяем ячейки светло-жёлтым цветом
      With .Range("B10").Resize(ct, 2)
        .Interior.Color = RGB(255, 255, 204) ' Светло-жёлтый цвет
        ' Добавляем границу
        With .Borders
          .LineStyle = xlContinuous
          .Color = RGB(0, 0, 0) ' Чёрный цвет границы
          .Weight = xlThin
        End With
      End With
    End With
  End If
End Sub
[/vba]
P.S. Ознакомьтесь с правилами форума и оформляйте код тегами, так читать неудобно.

Автор - i691198
Дата добавления - 21.05.2025 в 19:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!