Excel VBA代码(Goal Seek)代码简化



我是VBA的新手——到目前为止,我"编码"的所有内容都完全来自Record Macro函数。宏是有效的,但它非常笨拙。从本质上讲,我想做的是运行一个目标查找函数,获取答案,并将其放入单元格。接下来,我将递增到下一个输入,并再次执行该过程(然后再执行38次(。以下是前两个增量:

Range("B11").Select
ActiveCell.FormulaR1C1 = "=R[-8]C[13]"
Range("C37:D37").Select
Range("C37").GoalSeek Goal:=0, ChangingCell:=Range("A33")
Range("A33:B37").Select
Selection.Copy
Range("P3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("R11").Select
Range("B11").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[-7]C[13]"
Range("C37:D37").Select
Range("C37").GoalSeek Goal:=0, ChangingCell:=Range("A33")
Range("A33:B37").Select
Selection.Copy
Range("P4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("P5").Select

C37:D37是我的目标查找公式,A33:B37是我复制并粘贴到p列中的输出。我想和一些同事分享这段代码,但以目前的状态来看,这是非常不专业的。有什么想法吗?

谢谢!

pᴇʜ-谢谢你的回答;简单而有效。这正是我所需要的。如果将来有人偶然发现这一点,以下是我最终使用的内容。

Sub Calculation()
Dim x As Long
For x = 1 To 40 
ThisWorkbook.Worksheets("Sheet1").Range("B11").Value = ThisWorkbook.Worksheets("Sheet1").Cells(2 + x, 15)
ThisWorkbook.Worksheets("Sheet1").Range("C37").GoalSeek Goal:=0, ChangingCell:=ThisWorkbook.Worksheets("Sheet1").Range("A33")
ThisWorkbook.Worksheets("Sheet1").Cells(2 + x, 16) = ThisWorkbook.Worksheets("Sheet1").Range("A33").Value 
Next
End Sub

最新更新