XML表名称似乎与vba工作表名称不一致

时间:2017-09-14 13:57:53

标签: excel vba excel-vba

我的工作簿很庞大。

我已将文件设为zip并打开zip以检查xml文件。然后我查看了zip中的工作表文件夹,看看:

enter image description here

如果我查看vba编辑器,我可以看到:

enter image description here

但" Sheet25"在vba中是一个注释标签,上面只有5行文字,因此这些名称不一样。

我可以轻松地在两个不同的标识符之间进行映射吗?例如Sheet sheet25.xml是什么?

2 个答案:

答案 0 :(得分:1)

最简单的检查是打开sheet25.xml。您将在顶部的此行中看到匹配的codeName:

    <sheetPr codeName="Sheet22"/>

修改

如果您不想打开xml文件(因为它太大了),还有另一种方法可以跟踪xml工作表文件名到工作簿中工作表的codeNames的映射。

打开xl/_rels/workbook.xml.rels文档。你应该看到这样的行:

<Relationship Target="worksheets/sheet3.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId3"/>
<Relationship Target="worksheets/sheet2.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId2"/>
<Relationship Target="worksheets/sheet1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId1"/>

将xml工作表名称链接到最右侧的资源ID,例如

worksheets/sheet2.xml =&gt; Id="rId2"

然后打开xl/workbook.xml文档,获取:

<sheet r:id="rId1" sheetId="1" name="one"/>
<sheet r:id="rId2" sheetId="3" name="Sheet3"/>
<sheet r:id="rId3" sheetId="4" name="Sheet1"/>

将资源ID链接到工作表名称,例如

r:id="rId2" =&gt; name="Sheet3"

然后从VBE编辑器:

Sheet3 (Sheet3)

将名称与括号内的选项卡名称匹配,以获取codeName:

Sheet3&lt; = (Sheet3)

完成。

答案 1 :(得分:0)

我认为 xml 文件的工作表编号只是工作簿中工作表中工作表的顺序,从保存文件时的左侧开始计数。要找到它,您可以打开电子表格并取消隐藏所有工作表。或者,您可以在工作表中使用公式 =SHEET() 来标识其编号。

请注意,这与 VBA 中的工作表代码不同,后者是您在 VBA 中打开项目资源管理器时看到的永久工作表编号。如果您四处移动,工作表代码不会改变。