Excel中的VBA:如何用一个variablesreplace一个命令?

我正在构build一个从网页中检索表格元素的函数。 这到目前为止工作得很好。

为了使function更多样化,我希望能够使用参数来调用它,告诉它要查找什么。

我目前的代码写入到单元格中使用的值:

Sub RetrieveWebPage Parameter ... some code here rng.Value = cl.innerHTML ... some code here End Sub 

我如何用一个可变参数replace“innerHTML”,以便它不是总是检索innerHTML元素,而是可能是outerHTML,或标题等。

我试过这个

 rng.Value = cl.Parameter 

但只是得到错误的对象不支持这个属性或方法。 有没有办法做到这一点?

谢谢。

 Dim P As String P = "innerHTML" rng.Value = CallByName(cl, P, vbGet) 

所有应有的尊重@Doug,但我更喜欢使用布尔variables这种事情。 主要是因为布尔variables只能是False或True(声明时默认为false)。 这样做的好处是,您不必担心不小心将拼写错误的string作为参数input大量代码时可能发生的参数。

另外使用布尔variables可以减less代码(虽然不是太多)

 Sub RetrieveWebPage(Inner as Boolean) '... some code here If Inner = True then rng.Value = cl.innerHTML Else rng.Value = cl.outerHTML End if '... some code here End Sub 

string参数更有用的情况是当有多于两个的结果需要分别处理时。 只是我的两分钱! 🙂

就像是:

 Sub RetrieveWebPage (Parameter as String) '... some code here Select Case Parameter Case "Inner" rng.Value = cl.innerHTML Case "Outer" rng.Value = cl.outerHTML Case "Title" rng.Value = cl.Title Case Else MsgBox "Call the programmer and suggest adding error-handling to this routine or using a class" End Select '... some code here End Sub