我完全不知道如何创建单独的subs
/ functions
来缩短code
。我指的是那些 subs(某事为整数等)
下面我们将code
放在我的核心module
Set els = IE.Document.getelementsbytagname("a")
For Each el In els
If Trim(el.innertext) = "Documents" Then
colDocLinks.Add el.href
End If
Next el
For Each XML_link In colDocLinks
LoadPage IE, CStr(XML_link)
For Each el In IE.Document.getelementsbytagname("a")
If el.href Like "*[0-9].xml" Then
With Worksheets("CONTROL_ROOM").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.NumberFormat = "@"
.Value = Ticker
.Offset(0, 1).Value = el.href
End With
Debug.Print el.innertext, el.href
colXMLPaths.Add el.href
End If
Next el
Next XML_link
我真的需要缩短我的code
。如何创建单独的sub
或function
,而不是将code
这一块放入我的主module
?
图书提供了过于简单的例子,在实际情况下对我没有任何帮助就像这样。我是否需要在单独的Dim els
或Sub
内进行Function
等声明?感谢您提前耐心等待。
最重要的是无论我看这些例子有多少时间我都无法弄清楚我在这里放了哪些变量:
(Private) Sub / (Private) Function ( variables ?)
+++任何好的例子/链接都会有所帮助。
答案 0 :(得分:1)
只要您希望能够调用代码块来执行某些操作,就可以创建子例程,而无需向调用它的代码返回任何类型的值:
Sub MainCode()
Dim myString as String ...'all your main code Call OtherSub(myString) ...'all your main code
End Sub
Sub OtherSub(theString as String)
'Do Something with the string theString
End Sub
想要返回某些内容时创建一个函数:
Sub MainCode()
Dim myString as String, newString as String ...'all your main code NewString = OtherSub(myString) ...'all your main code
End Sub
Function ManipulateString(theString as String)
'Do Something with the string theString ManipulateString = theString & ...
结束功能
在函数结束时,要返回新值,只需将函数名设置为等于传回的值。
希望有所帮助。