Здравствуйте.
Есть вопрос по макросу. Во вложении файл с двумя страницами - на странице "Data" находятся некие данные, на странице "Check" в столбце А - искомые данные. Макрос скрывает строки на странице "Data", данные в которых не равны искомым данным с страницы "Check".
Но есть одна проблема - он работает только когда в искомых данных больше одного значения. В случае, когда там лишь одно значение он не работает. Помогите понять где ошибка и как ее исправить. Заранее большое спасибо!
Макрос:
Option Explicit
Sub Checking()
Dim i As Integer, n As Integer
Dim v1 As Variant, v2 As Variant
Dim s As Long, t As Long
s = ActiveWorkbook.Sheets("Data").Cells(1, 3).End(xlDown).Row
t = ActiveWorkbook.Sheets("Check").Cells(1, 1).End(xlDown).Row
ActiveWorkbook.Sheets("Data").Rows(2 & ":" & s).Hidden = True
v1 = Range(ActiveWorkbook.Sheets("Data").Cells(2, 3), ActiveWorkbook.Sheets("Data").Cells(s, 3)).Value
v2 = Range(ActiveWorkbook.Sheets("Check").Cells(1, 1), ActiveWorkbook.Sheets("Check").Cells(t, 1)).Value
For n = LBound(v1) To UBound(v1)
For i = LBound(v2) To UBound(v2)
If v1(n, 1) = v2(i, 1) Then
ActiveWorkbook.Sheets("Data").Rows(n).Hidden = False
End If
Next i
Next n
ActiveWorkbook.Sheets("Data").Select
End Sub
Есть вопрос по макросу. Во вложении файл с двумя страницами - на странице "Data" находятся некие данные, на странице "Check" в столбце А - искомые данные. Макрос скрывает строки на странице "Data", данные в которых не равны искомым данным с страницы "Check".
Но есть одна проблема - он работает только когда в искомых данных больше одного значения. В случае, когда там лишь одно значение он не работает. Помогите понять где ошибка и как ее исправить. Заранее большое спасибо!
Макрос:
Option Explicit
Sub Checking()
Dim i As Integer, n As Integer
Dim v1 As Variant, v2 As Variant
Dim s As Long, t As Long
s = ActiveWorkbook.Sheets("Data").Cells(1, 3).End(xlDown).Row
t = ActiveWorkbook.Sheets("Check").Cells(1, 1).End(xlDown).Row
ActiveWorkbook.Sheets("Data").Rows(2 & ":" & s).Hidden = True
v1 = Range(ActiveWorkbook.Sheets("Data").Cells(2, 3), ActiveWorkbook.Sheets("Data").Cells(s, 3)).Value
v2 = Range(ActiveWorkbook.Sheets("Check").Cells(1, 1), ActiveWorkbook.Sheets("Check").Cells(t, 1)).Value
For n = LBound(v1) To UBound(v1)
For i = LBound(v2) To UBound(v2)
If v1(n, 1) = v2(i, 1) Then
ActiveWorkbook.Sheets("Data").Rows(n).Hidden = False
End If
Next i
Next n
ActiveWorkbook.Sheets("Data").Select
End Sub