Делаю поиск строки сначала по одному диапазону с цифрой года, потом со смещением на один столбец по второму диапазону с названием месяца, и присваиваю значения нужным ячейкам. Для первого месяца отрабатывает все нормально, а остальные месяцы не находит. не могу понять где ошибка, хотя сначала все работало. [vba]
Код
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
[/vba]
Делаю поиск строки сначала по одному диапазону с цифрой года, потом со смещением на один столбец по второму диапазону с названием месяца, и присваиваю значения нужным ячейкам. Для первого месяца отрабатывает все нормально, а остальные месяцы не находит. не могу понять где ошибка, хотя сначала все работало. [vba]
Код
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
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]
[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 With End Sub