Excel VBA:UCase内置属性的使用
我在下面的代码行中使用了UCase-> //xmlTag1doc正在生成一个xmlExcel VBA:UCase内置属性的使用,excel,vba,Excel,Vba,我在下面的代码行中使用了UCase-> //xmlTag1doc正在生成一个xml Dim xmlTag1doc As IXMLDOMElement,Dim ParentDoc As MSXML2.DOMDocument set xmlTag1Doc = ParentDoc.DocumentElement.SelectSingleNode("//Root//XP") if(xmlTag1Doc .SelectNodes("//tag1[@ID = 1 and @Name=
Dim xmlTag1doc As IXMLDOMElement,Dim ParentDoc As MSXML2.DOMDocument
set xmlTag1Doc = ParentDoc.DocumentElement.SelectSingleNode("//Root//XP")
if(xmlTag1Doc .SelectNodes("//tag1[@ID = 1 and @Name='" & strname & "']").Length >0)
在这里,我必须使用“UCase”来检查代码行中的类似UCase(@Name)=UCase(strname)。
可能吗?
请提出一些答案。
提前感谢。使用以下命令
if(xmldoc.SelectNodes("//tag1[translate(@Name,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') = '" & strings.UCase(strname) & "']").Length >0)
编辑:
在本例中,尺寸ParantXMLDoc为MSMXL2.DOMDocumentXX
。(其中,XX是等于或高于40的任何版本)。由于xmlDoc是ParantXMLDoc中的一个节点,因此它将是与ParentXMLDoc相同类型的DOM版本
为什么是DOMDocument40或highet?
因为版本4.0是第一个完全支持XPath 1.0的DOM版本。在此版本之前,并非所有Xpath 1.0函数都受支持。例如Translate()
翻译(String1,*findString*,replaceString)
此函数用于搜索String1并用replaceString替换任何findString。
在w3org网站上,您可以获得更多信息。检查链接:
小心: 因为您在此Xpath
xmlDoc.SelectNodes(“//tag1[@Name='”&strname&“']”)中使用了/
,所以您正在查询ParentXMLDoc
中的所有tag1
元素。不仅在xmlDoc
中的预选元素内部,还应使用以下命令
if(xmldoc.SelectNodes("//tag1[translate(@Name,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ') = '" & strings.UCase(strname) & "']").Length >0)
编辑:
在本例中,尺寸ParantXMLDoc为MSMXL2.DOMDocumentXX
。(其中,XX是等于或高于40的任何版本)。由于xmlDoc是ParantXMLDoc中的一个节点,因此它将是与ParentXMLDoc相同类型的DOM版本
为什么是DOMDocument40或highet?
因为版本4.0是第一个完全支持XPath 1.0的DOM版本。在此版本之前,并非所有Xpath 1.0函数都受支持。例如Translate()
翻译(String1,*findString*,replaceString)
此函数用于搜索String1并用replaceString替换任何findString。
在w3org网站上,您可以获得更多信息。检查链接:
小心:
因为您在此XpathxmlDoc.SelectNodes(“//tag1[@Name='”&strname&“']”)中使用了/
,所以您正在查询ParentXMLDoc
中的所有tag1
元素。不仅仅是在xmlDoc
中的预选元素中:感谢您的回答。我在“translate”函数中遇到错误,如“Err Source:msxml3.dll Errdesc:Unknown method.”。您应该将xmlDoc声明为MSXML2.DOMDocument40
或更高版本。在该版本取代完整Xpath之前,它是一种自己支持的查询语言。更多信息请参见Dimitre在本文中的回答。我已经更改了我的帖子。请检查。我已经添加了更多代码。:谢谢回答。我在“translate”函数上遇到错误,如“Err Source:msxml3.dll Errdesc:Unknown method.”。您应该将xmldoc声明为MSXML2.DOMDocument40
或更高版本。在该版本取代完整Xpath之前,它是一种自己支持的查询语言。更多信息请参见Dimitre在本文中的回答。我已经更改了我的帖子。请检查。我已经添加了更多的代码。如果您使用更合适的东西重命名xmlDoc
可能会更好,例如xmlTag1Elements
。因此,您将立即知道该变量中包含哪些数据。@CaBieberach:谢谢您的回答。它起作用了。我再问两个问题,请回答。我为什么要使用MSXML2.DOMDocument40以及translate函数的实际作用??hi@user1495475。我更新了我的答案。@CaBieberach:得到了答案,先生。非常感谢。它在所有方面都有效。请解释一下“不起作用”是什么意思。提供有关该问题的更多详细信息。如果您使用更合适的名称重命名xmlDoc
,例如xmlTag1Elements
,可能会更好。因此,您将立即知道该变量中包含哪些数据。@CaBieberach:谢谢您的回答。它起作用了。我再问两个问题,请回答。我为什么要使用MSXML2.DOMDocument40以及translate函数的实际作用??hi@user1495475。我更新了我的答案。@CaBieberach:得到了答案,先生。非常感谢。它在所有方面都有效。请解释一下“不起作用”是什么意思。请提供有关该问题的更多详细信息。