Excel 2010 VBA用户编写的输入参数修改函数
我有一个关于Excel2010VBA的问题。做了大量的寻找解决方案,但答案没有解决我的问题。希望stackoverflow社区能够为我带来一些启示 我有一个用户编写的函数,它是从工作表中的单元格调用的。它由两个参数调用–两个单元格位于同一张图纸上 函数的目的是检查这两个参数,并根据它们的值返回一个字符串作为函数的结果 到目前为止,这些函数都按预期工作 但是,如果第一个参数的值具有某个值,我希望能够更改第二个参数的值。这就是我被卡住的地方。我找不到任何方法来改变它的价值 我尝试将参数设置为所需的值,但这会导致错误。 我想我可以设置一个指向活动工作表的指针,从而指向单元格,但我不知道它的引用是什么(因为工作表上会有很多) 老实说,我不确定我能做我需要的事。如对未来道路有任何想法或意见,我们将不胜感激 关于Excel 2010 VBA用户编写的输入参数修改函数,excel,vba,Excel,Vba,我有一个关于Excel2010VBA的问题。做了大量的寻找解决方案,但答案没有解决我的问题。希望stackoverflow社区能够为我带来一些启示 我有一个用户编写的函数,它是从工作表中的单元格调用的。它由两个参数调用–两个单元格位于同一张图纸上 函数的目的是检查这两个参数,并根据它们的值返回一个字符串作为函数的结果 到目前为止,这些函数都按预期工作 但是,如果第一个参数的值具有某个值,我希望能够更改第二个参数的值。这就是我被卡住的地方。我找不到任何方法来改变它的价值 我尝试将参数设置为所需的值
格雷厄姆·琼斯(Graham Jones)一般来说,您不希望Excel函数更改其输入。我以前做过,但这被认为是非常糟糕的做法 更可接受的方法是创建一个计算第二个参数的函数,该函数需要2个输入:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents=False
if Target.Address = "$A$1" and target.count = 1 Then ' change in first parameter - first parameter
if Target.Value ="something" then Range("B1").Value ="change"
'$A$1 is the location of fist paramenter
'range("b1") is second parameter on assumption
end if
Application.EnableEvents=True
End Sub
非常感谢你的建议。我用它成功地检查了我的价值观,并根据需要修改了其他价值观。