将工作簿存储在 Xlam 中
Store a workbook in a Xlam
我需要将工作簿添加到 Xlam 文件(加载项)中。思路很简单,一个宏就是运行然后新建工作簿就是shown/open。
有人可能会建议以下代码:
Workbooks.Open "\someNetworkDrive\myworkbook.xlsx"
不同的用户将工作簿存放在不同的路径中。所以上面的解决方案是行不通的。 (此外,用户可能没有工作簿)有谁知道将 xlsx 文件附加到 xlam 文件的方法吗?
另一种方法是将此工作簿存储在工作簿类型的 VBA 变量中,然后在宏为 运行 时 show/open 它。但我不知道如何将已创建的工作簿存储到 VBA 代码中。
有什么想法吗?
避免过于复杂的代码,只要求用户找到工作簿:
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
如果您需要单个工作簿解决方案,则需要将工作表嵌入到 xlam 中,然后创建一个新工作簿并将工作表等复制到其中。您可能只能将格式和公式等存储在 XLAM 中,然后 XLAM 中的 VBA 代码使用它们来创建新工作簿。
当您需要创建可变数量的行等时,这种方法很有效。
我需要将工作簿添加到 Xlam 文件(加载项)中。思路很简单,一个宏就是运行然后新建工作簿就是shown/open。 有人可能会建议以下代码:
Workbooks.Open "\someNetworkDrive\myworkbook.xlsx"
不同的用户将工作簿存放在不同的路径中。所以上面的解决方案是行不通的。 (此外,用户可能没有工作簿)有谁知道将 xlsx 文件附加到 xlam 文件的方法吗?
另一种方法是将此工作簿存储在工作簿类型的 VBA 变量中,然后在宏为 运行 时 show/open 它。但我不知道如何将已创建的工作簿存储到 VBA 代码中。
有什么想法吗?
避免过于复杂的代码,只要求用户找到工作簿:
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
如果您需要单个工作簿解决方案,则需要将工作表嵌入到 xlam 中,然后创建一个新工作簿并将工作表等复制到其中。您可能只能将格式和公式等存储在 XLAM 中,然后 XLAM 中的 VBA 代码使用它们来创建新工作簿。 当您需要创建可变数量的行等时,这种方法很有效。