2017-09-14 120 views
0

我有一个大型的臃肿的工作簿。XML工作表名称似乎不同意vba工作表名称

我制作了一个zip文件并打开zip文件来检查xml文件。然后我看了看工作表文件夹中的zip看到这样的:

enter image description here

如果我再看看在VBA编辑器,我可以看到这一点:

enter image description here

但“Sheet25 “在vba中是只有5行文字的注释选项卡,所以这些名称不一样。

有没有简单的方法让我在两个不同的标识符之间进行映射?例如Sheetsheet25.xml

回答

1

最简单的检查是打开sheet25.xml。您将看到匹配代号在这条线在顶部:

<sheetPr codeName="Sheet22"/> 

编辑

如果你不想打开XML文件(因为它太大了),有是另一种跟踪XML表单文件名与工作簿中工作表代码名称映射的方法。

打开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 =>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" =>name="Sheet3"

再从VBE编辑:

Sheet3 (Sheet3) 

匹配名称,括号内的标签名称获取代号:

Sheet3 < = (Sheet3)

完成。

+0

他们是不一样的 - 正如我所说的“Sheet25”是与5行文本的笔记 - 它绝对不是那个大小 – whytheq

+0

@whytheq当你打开sheet25,xml时,你看到codeName的代码是什么? – robinCTS

+0

很好的一部分我希望甚至不必打开该文件 - 你能看到它的大小 - 因此我的问题的开始“有没有简单的方法...“ – whytheq