将工作簿存储在Xlam中

时间:2015-07-20 15:44:34

标签: excel vba add-in

我需要将一个工作簿添加到Xlam文件(加载项)。这个想法很简单,运行一个宏,然后显示/打开新的工作簿。 可以建议以下代码:

Workbooks.Open "\\someNetworkDrive\myworkbook.xlsx" 

不同的用户将工作簿存储在不同的路径中。所以上面的解决方案不起作用。 (此外,用户可能没有工作簿)是否有人知道将xlsx文件附加到xlam文件的方法?

另一种方法是将此工作簿存储在类型工作簿的VBA变量中,然后在运行宏时显示/打开它。但我不知道如何将已创建的工作簿存储到VBA代码中。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

保存代码过于复杂,只需要求用户找到工作簿:

Sub SO()

Dim fileLocation   As String
Dim myWB           As Excel.Workbook

fileLocation = Application.GetOpenFileName("Excel Workbook (*.xlsx), *.xlsx")

If Not UCase(fileLocaation) = "FALSE" And Not fileLocation = vbNullString Then
    Set myWB = Workbooks.Open(fileLocation)
End If

End Sub

答案 1 :(得分:1)

如果您需要一个工作簿解决方案,那么您需要将工作表嵌入到xlam中,然后创建一个新工作簿并将工作表等复制到其中。您可以只在XLAM中存储格式和公式等,然后XLAM中的VBA代码使用它们来创建新工作簿。 如果要创建可变数量的行等,此方法很有效。