这是我的惯例。

Private Sub CommandButton1_Click()
    ' Mass Goal Seek

    Dim Taddr, Gaddr, Aaddr As Range
    Dim currPart As String
    Dim MaxParts, prt As Integer
    Dim ARange, TRange, GRange As Range
    Dim NumEq, i As Long

    MaxParts = 15
    For prt = 1 To MaxParts
        currPart = Worksheets("Data Entry").Range("Header")(prt)
        Worksheets("Item Data").Range("prt_2").Value = prt
        Set Taddr = ThisWorkbook.Names("TRange").RefersToRange
        Set Aaddr = ThisWorkbook.Names("ARange").RefersToRange
        Set Gaddr = ThisWorkbook.Names("GRange").RefersToRange

        If Worksheets("Data Entry").Range("Header")(prt) Like "Molding***" Then
            Exit Sub
        End If

        NumEq = Aaddr.Rows.Count

        For i = 1 To NumEq
            'MsgBox ("The Part Number is: " & currPart & " The Value is: " & Taddr(i).Value)

            If Gaddr(i).Value <> "" Then
                Taddr(i).GoalSeek goal:=Gaddr(i), changingcell:=Aaddr(1)
                Gaddr(i).Value = ""
            End If
        Next i
    Next
End Sub


有目标的行总是有错误,我尝试了许多不同的语法行。
它给出了


运行时错误'1004':应用程序定义或对象定义的错误。

最佳答案

您收到Error '1004': Application-defined or object-defined错误,因为GoalSeek单元格Taddr(i)必须包含直接或间接引用ChangeingCell Aaddr(1)的公式

我建议逐步检查您的代码并检查是否


Taddr(i)指的是您认为应该引用的单元格
它包含直接/间接引用ChangingCell的公式


这是重现错误的简单方法

Sub Sample()
    Range("A10").GoalSeek Goal:=100, ChangingCell:=Range("A1")
End Sub


此处A10没有任何公式。

excel - 我无法为我的“寻求目标”例程获取正确的语法-LMLPHP

现在让我们向A10添加一个引用A1的公式并运行相同的代码

excel - 我无法为我的“寻求目标”例程获取正确的语法-LMLPHP

关于excel - 我无法为我的“寻求目标”例程获取正确的语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38982785/

10-11 08:28