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

法尔科

我使用以下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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从MS Access 2003 VBA处理MS Excel分页符

来自分类Dev

MS Access VBA IF()

来自分类Dev

MS Access 2016中Excel工作簿的无链接路径

来自分类Dev

OLEDB / ODBC在Python和MS Access VBA之间的相反工作

来自分类Dev

如何使用VBA在MS Access中添加新记录?

来自分类Dev

如何使用VBA创建空白的MS Access数据库?

来自分类Dev

如何使用VBA创建空白的MS Access数据库?

来自分类Dev

Ms Access-VBA-以大小编程地创建标签

来自分类Dev

通过MS Access VBA创建和动态修改.dtsx文件

来自分类Dev

如何通过Access VBA代码处理Excel工作簿

来自分类Dev

使用MS Access在Excel VBA中运行代码

来自分类Dev

在MS Access中使用Excel VBA进行SQL删除

来自分类Dev

停止ms Access VBA打开Excel文件只读

来自分类Dev

使用vba将MS Access查询输出到Excel

来自分类Dev

使用MS Access在Excel VBA中运行代码

来自分类Dev

MS Access,VBA-将交叉表导出到Excel

来自分类Dev

Int()函数MS Access VBA

来自分类Dev

MS ACCESS vba-错误

来自分类Dev

MS Access VBA 运行查询

来自分类Dev

自动格式化Excel工作表名称VBA MS Access 2013

来自分类Dev

在 ms access 导出 (VBA) 后格式化 Excel 工作表

来自分类Dev

MS Access VBA-使用SELECT INTO创建新表并添加记录

来自分类Dev

通过MS-ACCESS中的vba创建新表时如何包含变量

来自分类Dev

在子窗体中创建新记录按钮单击 MS Access 2013 VBA

来自分类Dev

从VBA SQL语法错误将MS EXCEL转换为MS ACCESS .accdb数据库

来自分类Dev

如何使用Access VBA定义要从Excel导出到MS Access表的列数?

来自分类Dev

MS Excel的VBA脚本

来自分类Dev

带VBA的MS Access链接表

来自分类Dev

MS Access中VBA代码的继承

Related 相关文章

热门标签

归档