回 帖 发 新 帖 刷新版面

主题:vb导出Excel,覆盖原文件时出错。怎解决?

我在vb导出Excel,无论有没有原文件也会显示如图:

这个窗口询问要不要覆盖原文件。我选择“是”就程序正常,选择“否”或“取消”,则程序出错。
出错的位置是我存储的命令:
MyBook.SaveAs FileName:=Input_Path, FileFormat:=xlNormal, Password:=""
其中input_path 是存储的文件名字、
可以解决出错问题吗?

回复列表 (共8个回复)

沙发

还以为你附件是代码呢!

板凳

Dim i As Long       '行
    Dim sXLSPath As String
    Dim MyExcel As New Excel.Application
    Dim MyBook As Excel.Workbook
    Dim MySheet As Excel.Worksheet
    Dim Input_Path As String        '存储文件名字
    Dim fs As New Scripting.FileSystemObject
    
    Input_Path = App.Path & "\统计资料" & Date & ".xls"
  
    If fs.FileExists(Input_Path) = True Then '判断该文件是否存在,若存在,则删除该文件
        Kill (Input_Path)     '这个判断出问题了。测试再修改。
    End If
    
    temp = MsgBox("确定要导出为Excel文件?", vbYesNo, "导出")
    If temp = vbYes Then
    
        Screen.MousePointer = 11
        Open Input_Path For Output As #1
        Close #1
    
        Set MyExcel = CreateObject("excel.application")
        Set MyBook = MyExcel.Workbooks.Open(Input_Path)
        Set MySheet = MyExcel.ActiveSheet
        MySheet.Range("A1:O1").Select
        
    '    With MyExcel.Selection.Interior
    '        .ColorIndex = 15
    '        .Pattern = xlSolid
    '    End With
    
        For i = 1 To 15
            MySheet.Columns(i).ColumnWidth = 15     '设置Excel的列宽
        Next i
        
        For i = 0 To MSHFG1.Rows - 1
            For j = 0 To MSHFG1.Cols - 1
                MySheet.Cells(i + 1, j + 1) = MSHFG1.TextMatrix(i, j)
            Next j
        Next i
        
        MyBook.SaveAs FileName:=Input_Path, FileFormat:=xlNormal, Password:=""
        
        MyBook.Application.Quit
        MyExcel.Application.Quit
        Set MySheet = Nothing
        Set MyBook = Nothing
        Set MyExcel = Nothing
        Screen.MousePointer = 0
    
        MsgBox "文件导出成功。文件的位置是: " & Input_Path
        
    End If

3 楼

上面是原代码。
MSHFG1是列表控件

4 楼

能说说,这时候执行到那行了吗?

5 楼

我目前这台机器没有安装vb所以不能运行代码,只能凭人工看。

6 楼

你在“另存为”(SaveAs)的时候出错!
因为该文件在前面“创建”(CreateObject)时就存在了。
不一定对,仅供参考。

7 楼

我试过了,必须要CreateObject

kill命令好像没执行一样。真不知道怎么弄。

8 楼

天!我真不知道,你为什么要另存?
    我更不知道我什么地方说不要创建?

我来回复

您尚未登录,请登录后再回复。点此登录或注册