Добрый день, прошу помочь с написанием макроса (первый день в глаза вижу макросы)
Код | Sub Main
Dim Str, Str1, Year, kp As String 'Dim WorksheetTab, WorksheetPr As Worksheet Dim i, j, Art2, Art3, Ost2, Ost3, Rez2, Rez3 As Integer Dim Worksheet1 As Object Dim ThisWorkbook As Object
Set Worksheet1 = ThisWorkbook.getByName("Лист1") Set Worksheet1 = ThisWorkbook.Worksheets("Лист1") Set Worksheet2 = ThisWorkbook.Worksheets("Производители") Set Worksheet3 = ThisWorkbook.Worksheets("Линии косметики")
'WorksheetPr.Cells.ClearContents
i = 1 j = 1 Art2 = 5 Art3 = 2 Ost2 = 6 Ost3 = 1 Rez2 = 6 'jjj Rez3 = 6
Do While Worksheet1.Cells(i, Art2) <> ""
Do While Worksheet1.Cells(i, Art2) > Worksheet2.Cells(j, Art3) j = j + 1 Loop If Worksheet1.Cells(i, Art2) = Worksheet2.Cells(j, Art3) Then Worksheet1.Cells(i, Rez2) = Worksheet3.Cells(j, Ost3) If Worksheet1.Cells(i, Ost2) = 0 Then Worksheet2.Cells(j, Rez3) = "X" Else Worksheet2.Cells(j, Rez3) = Worksheet1.Cells(i, Ost2) End If End If
i = i + 1
Loop
'Dim Str, Str1, Year, kp As String 'Dim WorksheetTab, WorksheetPr As Worksheet 'Dim i, j, Art1, Art3, Ost1, Ost3, Rez1, Rez3 As Integer Dim Art1, Ost1, Rez1 As Integer
Set Worksheet1 = ThisWorkbook.Worksheets("Лист1") Set Worksheet3 = ThisWorkbook.Worksheets("Линии косметики")
'WorksheetPr.Cells.ClearContents
i = 2 j = 1 Art1 = 7 Art3 = 3 Ost3 = 2 Rez1 = 8 'kkk Rez3 = 14
Do While Worksheet1.Cells(i, Art1) <> ""
Do While Worksheet1.Cells(i, Art1) > Worksheet3.Cells(j, Art3) j = j + 1 Loop If Worksheet1.Cells(i, Art1) = Worksheet3.Cells(j, Art3) Then Worksheet1.Cells(i, Rez1) = Worksheet3.Cells(j, Ost3) End If
i = i + 1
Loop
End Sub
|
ссылается на строку: Код | Set Worksheet1 = ThisWorkbook.getByName("Лист1")
|
и говорит, что "переменная типа Object не установлена". Пробовала по разному ее определить, но жалобы все равно продолжаются. Что можно сделать?
Еще одна просьба - написала я макрос для отбора id-шников на одном листе, сверка их на другом листе и при совпадении id писать названия. Проверьте пожалуйста правильность макроса, или напишите правильный (желательно с комментарием - ничего не знаю про VBA). |