gpt4 book ai didi

vba - MS Access - VBA - 创建新的 Excel 工作簿

转载 作者:行者123 更新时间:2023-12-04 13:16:05 26 4
gpt4 key购买 nike

我使用以下 VBA 函数读取 Excel 文件并“创建”一个新工作簿以将其保存为 CSV 文件。
当我第一次运行这个函数时,这很好用。
我会再次运行它吗,它不会打开一个新的工作簿(没有返回错误),我必须关闭 MS Access,然后我再次调用这个函数。

有人知道我做错了什么吗?

   public function fctImportExcel ()  

Dim objExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wbCSV As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Dim wsCSV As Excel.Worksheet

Set objExcel = New Excel.Application
Set wbExcel = objExcel.Workbooks.Open("filepath")
Set wsExcel = wbExcel.Sheets("sheet1")
objExcel.Visible = True

objExcel.DisplayAlerts = False

wsExcel.Range(wsExcel.Cells(i, 7), wsExcel.Cells(i, 25).End(xlDown)).Copy

Set wbCSV = Workbooks.Add
Set wsCSV = wbCSV.Sheets("sheet")

wsCSV.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
objExcel.CutCopyMode = False

wbCSV.SaveAs FileName:="workbook.csv", FileFormat:=xlCSV, CreateBackup:=False

wbCSV.Close acSaveNo
Set wsCSV = Nothing
Set wbCSV = Nothing

objExcel.DisplayAlerts = True

wbExcel.Close acSaveNo
objExcel.CutCopyMode = False
objExcel.Quit

Set wsExcel = Nothing
Set wbExcel = Nothing
Set objExcel = Nothing

End Function

最佳答案

您必须始终对 Excel 对象非常具体。所以尝试:

Set wbCSV = objExcel.Workbooks.Add

并小心地以相反的顺序关闭:
  wbCSV.Close acSaveNo
Set wsCSV = Nothing
Set wbCSV = Nothing

wbExcel.Close acSaveNo
Set wsExcel = Nothing
Set wbExcel = Nothing

objExcel.DisplayAlerts = True
objExcel.CutCopyMode = False
objExcel.Quit

Set objExcel = Nothing

关于vba - MS Access - VBA - 创建新的 Excel 工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60188316/

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