在尝试将变量分配给单元格时,Excel中出现错误1004

时间:2017-07-14 23:28:22

标签: excel-vba vba excel

我遇到错误1004应用程序定义或对象定义的问题 当我在工作表上运行宏时#34; Sierpien 2017"没关系,但在工作表" Wrzesien 2017"应该将结果写入单元格时会出错。下面我放了一段宏代码,剩下的就是其他几个月了。

Option Explicit

Public Sub Prowizja_kwartal()
Dim rng, rng1, rng2, kom, MyRng, MyRng1, MyRng2, wrzesienRange As Range
Dim a, b  As Integer
Dim prowizja, prowizja1, prowizja2, targety, targety1, targety2, procent, procent1, procent2 As Long
Dim szukana, Miesiac As String
Dim yourPassword As String
yourPassword = "1111"
szukana = "TARGET"
Miesiac = Cells(1, 19).Value
'Sierpień
    ElseIf Miesiac = "Sierpień" Then
    Sheets("Lipiec 2017").Unprotect Password:=yourPassword
    Set rng = Sheets("Lipiec 2017").Range("A1:M200")
    For Each kom In rng
        If kom.Value Like szukana Then
            a = kom.Row
            b = kom.Column
            targety = Sheets("Lipiec 2017").Cells(a, b + 1).Value
            prowizja = Sheets("Lipiec 2017").Cells(a - 2, b + 1).Value
        End If
    Next
    Sheets("Lipiec 2017").Protect Password:=yourPassword
    Sheets("Sierpień 2017").Unprotect Password:=yourPassword
    Set rng1 = Sheets("Sierpień 2017").Range("A1:M200")
    For Each kom In rng1
        If kom.Value Like szukana Then
            a = kom.Row
            b = kom.Column
            targety1 = Sheets("Sierpień 2017").Cells(a, b + 1).Value
            prowizja1 = Sheets("Sierpień 2017").Cells(a - 2, b + 1).Value
            Sheets("Sierpień 2017").Cells(a + 6, b + 1).Value = targety1
            Sheets("Sierpień 2017").Cells(a + 7, b + 1).Value = targety
            On Error Resume Next
                If prowizja1 > targety1 Then
                    If prowizja < targety Then
                        If (prowizja1 - (targety - prowizja)) >= targety1 Then
                        Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = (prowizja1 - (targety - prowizja)) / targety1
                        Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = (prowizja + (targety - prowizja)) / targety
                        Else
                        Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = prowizja1 / targety1
                        Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = prowizja / targety
                        End If
                    Else
                    Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = prowizja1 / targety1
                    Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = prowizja / targety
                    End If
                ElseIf prowizja1 < targety1 Then
                    If prowizja > targety Then
                        If (prowizja - (targety1 - prowizja1)) >= targety Then
                        Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = (prowizja1 + (targety1 - prowizja1)) / targety1
                        Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = (prowizja - (targety1 - prowizja1)) / targety
                        Else
                        Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = prowizja1 / targety1
                        Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = prowizja / targety
                        End If
                    Else
                    Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = prowizja1 / targety1
                    Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = prowizja / targety
                    End If
                Else
                Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value = prowizja1 / targety1
                Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value = prowizja / targety
                End If
            On Error Resume Next
        End If
    Next
    Sheets("Sierpień 2017").Protect Password:=yourPassword
'Wrzesień
    ElseIf Miesiac = "Wrzesień" Then
    Sheets("Lipiec 2017").Unprotect Password:=yourPassword
    Set rng = Sheets("Lipiec 2017").Range("A1:M200")
    For Each kom In rng
        If kom.Value Like szukana Then
            a = kom.Row
            b = kom.Column
            targety = Sheets("Lipiec 2017").Cells(a, b + 1).Value
            prowizja = Sheets("Lipiec 2017").Cells(a - 2, b + 1).Value
        End If
    Next
    Sheets("Lipiec 2017").Protect Password:=yourPassword
    Sheets("Sierpień 2017").Unprotect Password:=yourPassword
    Set rng1 = Sheets("Sierpień 2017").Range("A1:M200")
    For Each kom In rng1
        If kom.Value Like szukana Then
            a = kom.Row
            b = kom.Column
            targety1 = Sheets("Sierpień 2017").Cells(a, b + 1).Value
            prowizja1 = Sheets("Sierpień 2017").Cells(a - 2, b + 1).Value
            procent = Sheets("Sierpień 2017").Cells(a + 7, b + 2).Value
            procent1 = Sheets("Sierpień 2017").Cells(a + 6, b + 2).Value
         End If
    Next
    Sheets("Sierpień 2017").Protect Password:=yourPassword
    Sheets("Wrzesień 2017").Unprotect Password:=yourPassword
    Set rng2 = Sheets("Wrzesień 2017").Range("A1:M200")
    For Each kom In rng2
        If kom.Value Like szukana Then
            a = kom.Row
            b = kom.Column
            targety2 = Sheets("Wrzesień 2017").Cells(a, b + 1).Value
            prowizja2 = Sheets("Wrzesień 2017").Cells(a - 2, b + 1).Value
            Sheets("Wrzesień 2017").Cells(a + 9, b + 1).Value = (targety + targety1 + targety2)
            Sheets("Wrzesień 2017").Cells(a + 6, b + 1).Value = (targety2)
            Sheets("Wrzesień 2017").Cells(a + 7, b + 1).Value = (targety1)
            Sheets("Wrzesień 2017").Cells(a + 8, b + 1).Value = (targety)
            Sheets("Wrzesień 2017").Cells(a + 9, b + 2).Value = (prowizja + prowizja1 + prowizja2) / (targety + targety1 + targety2)
            If procent >= 1 Then
                If procent1 >= 1 Then
                    If prowizja2 >= targety2 Then
                            Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                            Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                            Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                    Else
                            If (prowizja + prowizja1) > (targety + targety1) Then
                                If ((prowizja + prowizja1) - (targety2 - prowizja2)) >= (targety + targety1) Then
                                    Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = (prowizja2 + (targety2 - prowizja2)) / targety2
                                    If procent1 >= procent Then
                                        If (prowizja1 - (targety2 - prowizja2)) >= targety1 Then
                                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = (prowizja1 - (targety2 - prowizja2)) / targety1
                                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                                        Else
                                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = (prowizja1 + prowizja2 + prowizja) / (targety + targety1 + targety2)
                                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = targety / targety
                                        End If
                                    Else
                                        If (prowizja - (targety2 - prowizja2)) >= targety Then
                                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = (prowizja - (targety2 - prowizja2)) / targety
                                        Else
                                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = targety1 / targety1
                                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = (prowizja1 + prowizja2 + prowizja) / (targety + targety1 + targety2)
                                        End If
                                    End If
                                Else
                                    Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                                    Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                                    Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                                End If
                            Else
                                Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                                Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                                Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                            End If
                    End If
                Else
                If prowizja2 >= targety2 Then
                    If (prowizja2 - (targety1 - prowizja1)) >= targety2 Then
                        Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = (prowizja2 - (targety1 - prowizja1)) / targety2
                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = (prowizja1 + (targety1 - prowizja1)) / targety1
                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                    Else
                        Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                    End If
                Else
                    Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                    Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                    Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                End If
                End If
            Else
                If prowizja2 >= targety2 Then
                    If (prowizja2 - (targety - prowizja)) >= targety2 Then
                        Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = (prowizja2 - (targety - prowizja)) / targety2
                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = (prowizja + (targety - prowizja)) / targety
                    Else
                        Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                        Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                        Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                    End If
                Else
                    Sheets("Wrzesień 2017").Cells(a + 6, b + 2).Value = prowizja2 / targety2
                    Sheets("Wrzesień 2017").Cells(a + 7, b + 2).Value = procent1
                    Sheets("Wrzesień 2017").Cells(a + 8, b + 2).Value = procent
                End If
            End If
        End If
        'On Error Resume Next
    Next
    Sheets("Wrzesień 2017").Protect Password:=yourPassword

请帮我找出错误。

此致 格雷格

0 个答案:

没有答案