我使用此代碼將模板xlsm文件的VbaPart添加到另一個。 當我打開vb節重複條目獲取添加每個工作表以及「ThisWorkBook」。使用來自模板xlsm文件的Open XML將vba代碼複製到另一個xlsm文件
下面是它的外觀在開發選項卡
和下面的屏幕截圖是我使用的代碼:
使用(SpreadsheetDocument myDoc = SpreadsheetDocument.Open(convertDocumentFile,真) ) { VbaProjectPart extendedPart = FindPart(myDoc);
if (extendedPart != null) myDoc.DeletePart(extendedPart); if (vbaPart != null) myDoc.WorkbookPart.AddPart<VbaProjectPart>(vbaPart); }
// --------------------------------------- -----------------------------------
private static VbaProjectPart FindPart(SpreadsheetDocument mainPart)
{
if (mainPart != null)
{
foreach (IdPartPair partPair in mainPart.WorkbookPart.Parts)
{
if (partPair.OpenXmlPart.RelationshipType == _wnsRelationShip.NamespaceName)
{
return partPair.OpenXmlPart as VbaProjectPart;
}
}
}
return null;
}
其中變量「convertDocumentFile」是文件,其中vbaProject部分需要添加,「vbaPart」是模板中的vbaProjectPart。
問候, 弗朗西斯P.