Foxtable(狐表)用户栏目专家坐堂 → [求助]如何用VBA导出一个窗口表数据(副表)到一个已存在的XLS文件。


  共有25人关注过本帖树形打印复制链接

主题:[求助]如何用VBA导出一个窗口表数据(副表)到一个已存在的XLS文件。

帅哥哟,离线,有人找我吗?
明天的灵
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:417 积分:5090 威望:0 精华:0 注册:2017/2/7 7:41:00
[求助]如何用VBA导出一个窗口表数据(副表)到一个已存在的XLS文件。  发帖心情 Post By:2025/2/23 22:28:00 [只看该作者]

如何用VBA导出一个窗口表数据(副表)到一个已存在的XLS文件。

窗口中的“导出”按钮“代码如下:

Dim App As New MSExcel.Application
Dim wb As MSExcel.Workbook
Dim ws As MSExcel.Worksheet
Dim startRow As Integer = 5 ' 指定开始行
Dim startCol As Integer = 3 ' 指定开始列

' 打开已存在的Excel文件
wb = App.Workbooks.Open("C:\test.xls")
ws = wb.Sheets(1) ' 选择第一个工作表,或者根据需要选择其他工作表

' 获取当前窗口中的副表
Dim subTable As Table = Tables(e.form.Name + "_table1")

' 遍历副表的数据并写入Excel
For i As Integer = 0 To subTable.Rows.Count - 1
    For j As Integer = 0 To subTable.Cols.Count - 1
        ws.Cells(startRow + i, startCol + j).Value = subTable.Rows(i)(j)
    Next
Next

' 保存并关闭Excel文件
wb.Save()
wb.Close()

' 释放Excel对象
App.Quit()

MessageBox.Show("导出完成!")


但是,运行出错:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8007065e 这个类型的数据不受支持。 (异常来自 HRESULT:0x8007065E)。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:用vba导出xls.table








 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112364 积分:572076 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2025/2/23 22:35:00 [只看该作者]

我测试代码没有问题。系统安装的office组件有问题。

卸载重新安装一下office,需要安装完整版的,最好是32位版本。不能安装精简版、绿色版的。一般Ghost系统自带的都是精简版。不要安装2007及更久的版本
如果有安装WPS,卸载掉。

 回到顶部
帅哥哟,离线,有人找我吗?
明天的灵
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:417 积分:5090 威望:0 精华:0 注册:2017/2/7 7:41:00
  发帖心情 Post By:2025/2/23 23:28:00 [只看该作者]

这个问题,确定是某台电脑问题。换一台电脑即能输出。
经检查,这台电脑安装了WPS,先卸载了WPS,但还是出错。
再卸载重新安装一下office 2003,并安装了完整版2003(32位版本),还是不行。
该台电脑是Ghost系统,自带了office 2007,并不可卸载。


 回到顶部