我有5028行,不包括标题和3列,想要通过更改列“B”中的值在“C”中设置值1.7。目标查找多行 - MS-Excel宏
使用目标查找选项它可能只适用于一个单元格。我想为5028行做同样的事情,请通过运行一些宏来帮助完成任务。
我有5028行,不包括标题和3列,想要通过更改列“B”中的值在“C”中设置值1.7。目标查找多行 - MS-Excel宏
使用目标查找选项它可能只适用于一个单元格。我想为5028行做同样的事情,请通过运行一些宏来帮助完成任务。
约翰·布斯托斯指出,正确的想法,这里是一个有效的解决方案:
Public Sub Demo()
Dim rngRow As Range
For Each rngRow In UsedRange.Rows
rngRow.Cells(1, 3).GoalSeek Goal:=1.7, ChangingCell:=rngRow.Cells(1, 2)
Next rngRow
End Sub
编辑:
使用ActiveSheet.UsedRange.Rows
而不是UsedRange.Rows
,如果您打算将此作为模块中的宏使用,而不是作为工作表之一或任何其他对vali的引用d范围。
对于您的示例,您可能更愿意使用:Range("A2:C5028").Rows
或MySheet.Range("A2:C5028").Rows
。
编辑:
Public Sub Demo()
On Error Resume Next
Dim rngRow As Range
For Each rngRow In ActiveSheet.UsedRange.Rows
rngRow.Cells(1, 3).GoalSeek Goal:=1.7, ChangingCell:=rngRow.Cells(1, 2)
Next rngRow
End Sub
嗨jook,非常感谢..但我在vba为零,我只是试图在模块中复制你的代码并执行,我得到'object required'错误,然后如你所说我将它改为activesheet.usedrange.rows,那么我得到'参考是无效的'错误。请帮助,如果可能的话,请给我准确的代码,可以将其放入模块中。 – davidb
嗨,jook,它工作得很好。非常感谢你。 – davidb
@davidb好吧,现在,这不会中断,但请记住,5028行需要相当长的一段时间。它应该作为一个模块宏。如果您只需要在特定的工作表或区域上使用它,请使用'CodeNameOfYourWorksheet.Range(“A2:C5028”)。行 - - 代号不同于你可以在excel中看到的工作表名称 - 只是google它;) – Jook
您可以创建一个循环,然后宏做了范围,目标寻求 - http://msdn.microsoft.com/en-us/library/office/bb209907%28v=office.12%29.aspx
它应该是可能的。您是否尝试过制作自己的宏? Excel可以通过记录您的操作自动创建一个宏,然后您可以编辑它创建的代码。 – PowerUser
好奇......这是某种单向散列,它会阻止您仅仅通过反转计算来确定列B中的值?即一个简单的公式?听起来像你可能不需要一个宏或“目标搜索”功能。 – Marc