我想通过vb修改excel的内容。当excel没有打开时,vb可以修改,但当打开要修改的excel文件时,就出现问题,提示:在当前位置发现已经存在名为“##.xls”的文件。你希望将该文件替换掉吗?。请问怎么解决这个问题。谢谢

解决方案 »

  1.   

    Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    Private Type OPENFILENAME
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        lpstrFilter As String
        lpstrCustomFilter As String
        nMaxCustFilter As Long
        nFilterIndex As Long
        lpstrFile As String
        nMaxFile As Long
        lpstrFileTitle As String
        nMaxFileTitle As Long
        lpstrInitialDir As String
        lpstrTitle As String
        flags As Long
        nFileOffset As Integer
        nFileExtension As Integer
        lpstrDefExt As String
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
    End Type
    Private Sub Command3_Click()
     Dim XLS As New Excel.Application
        Dim WRK As Excel.Workbook
        Dim SHT As Excel.Worksheet
        Dim RNG As Excel.Range
           '建立Excel新实例
            Set XLS = CreateObject("Excel.Application")
            '打开 XLS 文件
            Set WRK = XLS.Workbooks.Open(Text1.Text, False, False)
            '把当前选择的工作表赋值给SHT
            Set SHT = WRK.Worksheets(1)
            SHT.Cells(1, 1) = 1
             WRK.save
            '退出 Excel
          XLS.Quit
            
            '变量释放
            Set XLS = Nothing
            Set WRK = Nothing
            Set SHT = Nothing
                   
    End Sub我就是给excel表A1B1中赋值1,帮我看看。我想如果已打开了excel文件,那么代码中关于保存和退出会和当前的窗口excel文件发生冲突。请问怎么解决。
      

  2.   

    保存之前加上
    Application.DisplayAlerts = False
    保存之后再变成
    Application.DisplayAlerts = true
    这样就能不消失 对话框!试试看但是一般的对excel操作都会做一个中间的文件操作完成后再整体拷贝到最终文件中。
      

  3.   

    在Set SHT = WRK.Worksheets(1)前加个判断,避免这个情况出现
        If XLS.ActiveWorkbook.IsInplace = False Then
            MsgBox "该excel文件已经在Microsoft Excel 中打开"
            Set XLS= Nothing
            Exit Sub
        End If
      

  4.   

    因为文件已经打开...VB操作前先关闭文件..
    操作完成后  XLS.Visible = True  VB自动打开
      

  5.   

    不能,因为在Microsoft Excel 中打开之后,文件是只读的
      

  6.   

    我重新试了一下。excel中将该文件设置为允许多用户同时编辑工具》共享工作簿》允许多用户同时编辑。可以在打开的状态下修改。不过要关掉后再打开文件才会显示出修改的内容。
      

  7.   

    那就加Application.DisplayAlerts = False 吧...默认选的"是"
      

  8.   

    加Application.DisplayAlerts = False 
    好像不行,没反应。