我需要有关创建 Excel VBA 函数的帮助。
字符串变量“ mystring ”可以有三种不同的格式。
第一个只是一个普通的文本字符串。这种情况不需要任何东西。需要另外两个版本来处理标签和href 链接以供以后的html 输出。
Excel 示例:
mystring = "This is a headline"
mystring = "<myLink href='some/link.html'</myLink> This is also a headline"
mystring = "<noLink href='#'</noLink> This is another headline"
因此,我需要确定字符串是否包含myLink或noLink 标记,并将相应的href分配给 xml href-attribute。我相信,对于 noLink 来说,只编写<nolink>-tag
并让函数添加会更加用户友好href='#'
。
如果有更好的方法来设置这些分隔符,我愿意接受建议。
此外,实际的标题文本是 xml-tag 的一部分,后来用于mystringName xml-attribute。
对于上述示例,这些应该是生成的 xml 标记:
<mytag mystringName="This is a headline"/>
<mytag mystringName="This is also a headline" href="some/link.html" />
<mytag mystringName="This is another headline" href="#" />
在XSL的帮助下,我可以处理不同的 href 属性。
我如何认为这可以在 VBA 中使用:
If mystring = "myLink" Then
xmf.writeline "<mytag mystringName=""" & mystring & """href= """ & href & """ > """
End If
我偶然发现了我在网上找到的这个函数:我需要用不同的方式编写分隔符。
"<myLink href=some/link.html>"This is also a headline
也许这是拆分碎片并将它们放入数组的一个很好的起点。
Public Function GetStringFromQuotation(ByRef sText, sDelimiter As String)
'Store the position of the 1st and 2nd delimiter in the String
Dim iPositionOfFirstDelimiter As Integer, iPositionOfSecondDelimiter As Integer
'Store the length of the delimiter
Dim iLenDelimiter As Integer
'Deliver nothing if the function doesn't get a single usable parameter
'otherwise you'd get an error later on
If Len(sText) = 0 And Len(sDelimiter) = 0 Then
GetStringFromQuotation = ""
Exit Function
End If
iLenDelimiter = Len(sDelimiter)
'Find 1st occurence of delimiter
iPositionOfFirstDelimiter = InStr(sText, sDelimiter)
'Find the 2nd one, starting right behind the first one
iPositionOfSecondDelimiter = InStr(iPositionOfFirstDelimiter + iLenDelimiter, _
sText, sDelimiter)
'If there are 2 occurences
If iPositionOfFirstDelimiter > 0 And iPositionOfSecondDelimiter > 0 Then
'Take the part of the string that's right between them
GetStringFromQuotation = Mid(sText, iPositionOfFirstDelimiter + iLenDelimiter, _
iPositionOfSecondDelimiter - iPositionOfFirstDelimiter - iLenDelimiter)
Else
GetStringFromQuotation = ""
End If
End Function
希望您能帮助我使此功能(或其他功能)正常工作。
非常感谢。