vb修改excel出现的问题
我想通过vb修改excel的内容。当excel没有打开时,vb可以修改,但当打开要修改的excel文件时,就出现问题,提示:在当前位置发现已经存在名为“##.xls”的文件。你希望将该文件替换掉吗?。请问怎么解决这个问题。谢谢 --------------------编程问答-------------------- ?代码呢 --------------------编程问答-------------------- Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As LongPrivate 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文件发生冲突。请问怎么解决。 --------------------编程问答-------------------- 估计是保存时出现的提问,先将已存在的文件删除就可以了。 --------------------编程问答-------------------- 保存之前加上
Application.DisplayAlerts = False
保存之后再变成
Application.DisplayAlerts = true
这样就能不消失 对话框!
试试看
但是一般的对excel操作都会做一个中间的文件操作完成后再整体拷贝到最终文件中。 --------------------编程问答-------------------- 现在的问题是如果文件处于打开的状态就不能修改文件就会出问题。而如果要修改的文件没有处于打开状况,就不会出问题,当再打来文件,就修改好了。 --------------------编程问答-------------------- 在Set SHT = WRK.Worksheets(1)前加个判断,避免这个情况出现
If XLS.ActiveWorkbook.IsInplace = False Then--------------------编程问答-------------------- 因为文件已经打开...VB操作前先关闭文件..
MsgBox "该excel文件已经在Microsoft Excel 中打开"
Set XLS= Nothing
Exit Sub
End If
操作完成后 XLS.Visible = True VB自动打开 --------------------编程问答-------------------- 六楼的办法确实避免了出错误。但能不能文件在打开的状态下vb也能修该。 --------------------编程问答-------------------- 不能,因为在Microsoft Excel 中打开之后,文件是只读的 --------------------编程问答-------------------- 我重新试了一下。excel中将该文件设置为允许多用户同时编辑工具》共享工作簿》允许多用户同时编辑。可以在打开的状态下修改。不过要关掉后再打开文件才会显示出修改的内容。
--------------------编程问答-------------------- 那就加Application.DisplayAlerts = False 吧...默认选的"是" --------------------编程问答-------------------- 加Application.DisplayAlerts = False
好像不行,没反应。
补充:VB , 基础类