Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование в бесплатных офисных программах (Open Office и т.п.) > переменная типа Object не установлена


Автор: liliputochka 13.2.2013, 15: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).

Автор: Akina 13.2.2013, 16:59
Цитата(liliputochka @  13.2.2013,  16:49 Найти цитируемый пост)
 Что можно сделать?

Не копипастить, а писАть самостоятельно.
Откуда взято это getByName? Объектная модель Excel (судя по коду, используется именно он) про такое слыхом не слыхивала.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)