переменная типа Object не установлена

 
0
 
MS Office, Open Office и др.
ava
liliputochka | 13.02.2013, 16:49
Добрый день, прошу помочь с написанием макроса (первый день в глаза вижу макросы)


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 не установлена". Пробовала по разному ее определить, но жалобы все равно продолжаются. Что можно сделать?  smile 

Еще одна просьба - написала я макрос для отбора id-шников на одном листе, сверка их на другом листе и при совпадении id писать названия. Проверьте пожалуйста правильность макроса, или напишите правильный (желательно с комментарием - ничего не знаю про VBA).
Ответы (1)
ava
Akina | 13.02.2013, 16:59 #
Цитата (liliputochka @  13.2.2013,  16:49 findReferencedText)
 Что можно сделать?

Не копипастить, а писАть самостоятельно.
Откуда взято это getByName? Объектная модель Excel (судя по коду, используется именно он) про такое слыхом не слыхивала.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить