这是我的惯例。
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
没有任何公式。现在让我们向
A10
添加一个引用A1
的公式并运行相同的代码关于excel - 我无法为我的“寻求目标”例程获取正确的语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38982785/