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

 

= Мир MS Excel/Поиск в диапазоне с последующим смещением - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Поиск в диапазоне с последующим смещением
aleshke Дата: Пятница, 04.09.2020, 13:59 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Делаю поиск строки сначала по одному диапазону с цифрой года, потом со смещением на один столбец по второму диапазону с названием месяца, и присваиваю значения нужным ячейкам. Для первого месяца отрабатывает все нормально, а остальные месяцы не находит. не могу понять где ошибка, хотя сначала все работало.

Sub CommandButton1_Click()
Dim mmm, yyy As Range
Dim mm, yy, nn As String
Set yy = Range("B1")
Set mm = Range("B2")
nn = Range("B3")
Set var1 = Range("B4")
Set var2 = Range("B5")
Set var3 = Range("B6")
Set var4 = Range("B7")
Set yyy = Sheets(nn).Columns(1).Find(yy)
Set mmm = yyy.Offset(, 1).Find(mm)
If yyy Is Nothing Then MsgBox "Год " & yy & " не найден в базе данных.", vbExclamation: Exit Sub
If mmm Is Nothing Then MsgBox "Месяц " & mm & " не найден в базе данных.", vbExclamation: Exit Sub
mmm.Offset(, 1).Cells(1.1) = var1
mmm.Offset(, 5).Cells(1.1) = var2
mmm.Offset(, 6).Cells(1.1) = var3
mmm.Offset(, 8).Cells(1.1) = var4
End Sub

К сообщению приложен файл: 3251628.xlsm (31.5 Kb)
 
Ответить
СообщениеДелаю поиск строки сначала по одному диапазону с цифрой года, потом со смещением на один столбец по второму диапазону с названием месяца, и присваиваю значения нужным ячейкам. Для первого месяца отрабатывает все нормально, а остальные месяцы не находит. не могу понять где ошибка, хотя сначала все работало.
[vba]
Sub CommandButton1_Click()Dim mmm, yyy As RangeDim mm, yy, nn As StringSet yy = Range("B1")Set mm = Range("B2")nn = Range("B3")Set var1 = Range("B4")Set var2 = Range("B5")Set var3 = Range("B6")Set var4 = Range("B7")Set yyy = Sheets(nn).Columns(1).Find(yy)Set mmm = yyy.Offset(, 1).Find(mm)If yyy Is Nothing Then MsgBox "Год " & yy & " не найден в базе данных.", vbExclamation: Exit SubIf mmm Is Nothing Then MsgBox "Месяц " & mm & " не найден в базе данных.", vbExclamation: Exit Submmm.Offset(, 1).Cells(1.1) = var1mmm.Offset(, 5).Cells(1.1) = var2mmm.Offset(, 6).Cells(1.1) = var3mmm.Offset(, 8).Cells(1.1) = var4End Sub
[/vba]

Автор - aleshke
Дата добавления - 04.09.2020 в 13:59
Kuzmich Дата: Пятница, 04.09.2020, 18:04 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003

Sub CommandButton1_Click()
    Dim mmm As Range, yyy As Range
    With Sheets(CStr(Range("B3")))
    Set yyy = .Columns(1).Find(Range("B1"))
    Set mmm = .Range(.Cells(yyy.Row, 2), .Cells(yyy.Row + yyy.MergeArea.Count - 2, 2)).Find(Range("B2"))
    If yyy Is Nothing Then MsgBox "Год " & Range("B1") & " не найден в базе данных.", vbExclamation: Exit Sub
    If mmm Is Nothing Then MsgBox "Месяц " & Range("B2") & " не найден в базе данных.", vbExclamation: Exit Sub
    mmm.Offset(, 1) = Range("B4")
    mmm.Offset(, 5) = Range("B5")
    mmm.Offset(, 6) = Range("B6")
    mmm.Offset(, 8) = Range("B7")
    End With
End Sub

 
Ответить
Сообщение[vba]
Sub CommandButton1_Click()    Dim mmm As Range, yyy As Range    With Sheets(CStr(Range("B3")))      Set yyy = .Columns(1).Find(Range("B1"))      Set mmm = .Range(.Cells(yyy.Row, 2), .Cells(yyy.Row + yyy.MergeArea.Count - 2, 2)).Find(Range("B2"))    If yyy Is Nothing Then MsgBox "Год " & Range("B1") & " не найден в базе данных.", vbExclamation: Exit Sub    If mmm Is Nothing Then MsgBox "Месяц " & Range("B2") & " не найден в базе данных.", vbExclamation: Exit Sub      mmm.Offset(, 1) = Range("B4")      mmm.Offset(, 5) = Range("B5")      mmm.Offset(, 6) = Range("B6")      mmm.Offset(, 8) = Range("B7")    End WithEnd Sub
[/vba]

Автор - Kuzmich
Дата добавления - 04.09.2020 в 18:04
  • Страница 1 из 1
  • 1
Поиск:

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