gpt4 book ai didi

vba - excel vba函数可以打开文件吗?

转载 作者:行者123 更新时间:2023-12-02 16:01:18 25 4
gpt4 key购买 nike

我正在定义一个将文件保存为 .xls 格式的函数:

Public Function save_as_xls(full_file_path As String) As String
save_as_xls = ""

Dim src_file As Workbook
Set src_file = Workbooks.Open(full_file_path)
src_file.SaveAs filename:=full_file_path, FileFormat:=xlExcel8
src_file.Close

save_as_xls = "OK"
End Function

然后在 Excel 单元格公式中将其调用为 =save_as_xls("c:\temp\test.xls")

但是,它不起作用,src_fileWorkbooks.Open获取Nothing

vba 函数是否有无法打开文件的限制?我只知道它不能写入其他单元格。

最佳答案

Excel UDF 有一定的限制,因此您无法保存工作簿。您可以尝试使用 Excel 的后期绑定(bind)实例来解决问题,如下面的代码所示。

将此代码放入标准模块:

Public objExcel As Application

Public Function SaveAsXls(FilePath As String) As String

If objExcel Is Nothing Then
Set objExcel = CreateObject("Excel.Application")
With objExcel
.Visible = True ' for debug
.DisplayAlerts = False
End With
End If
With objExcel
With .Workbooks.Open(FilePath)
.SaveAs _
Filename:=FilePath, _
FileFormat:=xlExcel8
.Close True
End With
End With
SaveAsXls = "OK"

End Function

将此代码放入 ThisWorkbook 部分:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If TypeName(objExcel) = "Application" Then objExcel.Quit

End Sub

因此,您可以在 Excel 单元格公式中将其调用为 =SaveAsXls("c:\temp\test.xls")

关于vba - excel vba函数可以打开文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46782402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com