我是 VBA 的新手——到目前为止,我“编码”的所有内容都完全来自 Record Macro 函数。宏有效,但它非常笨重。
本质上,我要做的是运行目标搜索功能,获取答案,然后将其放入单元格中。接下来,我将递增到下一个输入,并再次执行该过程(然后再执行 38 次)。以下是前 2 个增量:
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
关于Excel VBA 代码(目标搜索)代码简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60280806/