Excel 求助:VB中怎么实现自动另存为
答案:3 悬赏:70 手机版
解决时间 2021-03-19 13:56
- 提问者网友:精神病院里
- 2021-03-18 16:55
Excel 求助:VB中怎么实现自动另存为
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-03-18 17:17
'举个例子:将D盘下b.xlsx另存为将D盘下test.xlsx
'引用Microsoft Excel 12.0 Object Library,版本不太一样,有可能是14
Private Sub Command1_Click()
Dim xlsApp As Excel.Application
Dim xlsWorkbook As Excel.Workbook
Dim xlssheet As Excel.Worksheet
Set xlsApp = CreateObject("Excel.Application")
Set xlsWorkbook = xlsApp.Workbooks.Open("D:\b.xlsx")
Set xlssheet = xlsWorkbook.Worksheets(1)
xlsApp.Visible = False
xlsWorkbook.SaveAs "D:\test.xlsx" '另存文件
xlsApp.Quit
Set xlssheet = Nothing
Set xlsWorkbook = Nothing
Set xlsApp = Nothing
End Sub
'引用Microsoft Excel 12.0 Object Library,版本不太一样,有可能是14
Private Sub Command1_Click()
Dim xlsApp As Excel.Application
Dim xlsWorkbook As Excel.Workbook
Dim xlssheet As Excel.Worksheet
Set xlsApp = CreateObject("Excel.Application")
Set xlsWorkbook = xlsApp.Workbooks.Open("D:\b.xlsx")
Set xlssheet = xlsWorkbook.Worksheets(1)
xlsApp.Visible = False
xlsWorkbook.SaveAs "D:\test.xlsx" '另存文件
xlsApp.Quit
Set xlssheet = Nothing
Set xlsWorkbook = Nothing
Set xlsApp = Nothing
End Sub
全部回答
- 1楼网友:春色三分
- 2021-03-18 18:30
excel文件无法直接保存,点保存会自动提示另存为的原因如下:
1、文件身是只读的,或以只读的方式打开的,
2、你这个文件本身是非EXCEL文件(如文本文件),但你当时用了EXCEL为打开方式,所以在EXCEL编辑过后就不能在EXCEL中直接保存,只能另存了,
3、excel软件出现问题,
4、病毒影响。
一般来说解决的方法是,新建一空白文档,看保存是不是正常,如果正常说明excel软件没有问题,无病毒,如果新建的都无法保存,说明需要清理病毒,修复excel软件。
如果excel软件正常,可以检查一下要开的文档的情况,是否有只读设置,是否格式不对,是否文档本身有限制等。可以考虑,新建一个,把内容复制到新建的文档中,这样就应该正常了。
- 2楼网友:你哪知我潦倒为你
- 2021-03-18 17:44
参考代码:
public sub import_excel(adc as adodc, data_grid as datagrid)
on error goto err
set application = createobject("excel.application") '建立excel对象
set workbook = application.workbooks.add() '建立一个新的excel文档
dim k, column, row, r, c as integer
adc.recordset.movefirst
columns = data_grid.columns.count '统计有多少列
rows = adc.recordset.recordcount '统计有多少行
dim m_array(1 to row, 1 to column) '声明一个二维数组
for k = 1 to columns '这里把标头写到第一行
workbook.sheets("sheet1").cells(1, k) = data_grid.columns(k - 1).caption
next k
do while not adc.recordset.eof '循环对数组赋值
for r = 1 to rows循环行
for c = 1 to columns '循环列
m_array(r, c) = trim(adc.recordset.fields(c - 1).value)
next c
adc.recordset.movenext
next r
loop
workbook.sheets("sheet1").range("a2").resize(row, column).value = m_array '一次把数组写入到excel---这里是快的根本
application.visible = true
set application = nothing
set workbook = nothing
adc.refresh
exit sub
err:
msgbox "没有记录可以导出", vbokonly, "出错了"
end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯