Excel VBA:UCase内置属性的使用

Excel 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=

我在下面的代码行中使用了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='" & 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网站上,您可以获得更多信息。检查链接:


小心:


因为您在此Xpath
xmlDoc.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:得到了答案,先生。非常感谢。它在所有方面都有效。请解释一下“不起作用”是什么意思。请提供有关该问题的更多详细信息。