| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 921 人关注过本帖
标题:vb 无法保存 excel 内容
只看楼主 加入收藏
caijinghuiok
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-12-4
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
vb 无法保存 excel 内容
程序运行后,不但无法保存excel文件,另外,程序就没法应了,类似假死。
Private Sub Command1_Click()
Form11.WindowState = 1
    FileName1 = "test.xlsx"
     On Error Resume Next
   
      Set xlApp = GetObject(, "Excel.Application")    '判断Excel是否打开
    If Err.Number <> 0 Then
        Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
        xlApp.Visible = False '设置EXCEL对象不可见
    End If
    Err.Clear
   
    If Dir(App.Path & "\" & FileName1) = "" Then '判断文件是否存在
        MsgBox App.Path & "\" & FileName1 & "未找到!", vbOKOnly, "友情提示"
        Exit Sub
    End If
      For Each xlBook In xlApp.Workbooks
        If xlBook.Name = "test.xlsx" Then
            MsgBox "文件已打开!请不要重复打开。", vbOKOnly, "友情提示"
             xlBook.Activate
             Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
             xlApp.Cells(6, 4) = Form11.Text1.Text
             'Exit Sub
              
            Else
             Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & FileName1) '打开工件簿文件
             xlBook.Activate
             Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
             xlApp.Cells(6, 4) = Form11.Text1.Text
           End If
            Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
            xlSheet.Cells(6, 4) = Form11.Text1.Text
    Next
   
    xlApp.DisplayAlerts = False     '不显示警告信息
    xlBook.Save
   xlApp.Quit '结束EXCEL对象
   Set xlApp = Nothing '释放xlApp对象
End Sub
搜索更多相关主题的帖子: excel False EXCEL Excel 
2014-12-04 18:05
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:320
专家分:561
注 册:2013-10-30
收藏
得分:4 
回复 楼主 caijinghuiok
Set xlApp = GetObject(, "Excel.Application")   
该为
Set xlApp = GetObject("Excel.Application")   
试试。
2014-12-04 19:14
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:320
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 2 楼 HVB6
还要“引用”两个东东。
2014-12-04 19:16
caijinghuiok
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-12-4
收藏
得分:0 
回复 2 楼 HVB6
引用了呀,excel 对象库
2014-12-05 09:31
caijinghuiok
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2014-12-4
收藏
得分:0 
回复 楼主 caijinghuiok
试过了,不行
2014-12-05 09:32
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:4 
xlApp.ActiveWorkbook.SaveAs(FileName1)?

不要選我當版主
2014-12-05 16:54
zhaors
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-12-25
收藏
得分:0 
另存的时候应该为:xlApp.Activeworkbook.saveas filename:="temp"
2014-12-25 13:05
unsamesky
Rank: 2
等 级:论坛游民
帖 子:2
专家分:20
注 册:2015-1-1
收藏
得分:0 
不知道你的问题解决了没有,显然,你的循环读取或者打开工作簿的代码是有问题的:
For Each xlBook In xlApp.Workbooks
        If xlBook.Name = "test.xlsx" Then
            MsgBox "文件已打开!请不要重复打开。", vbOKOnly, "友情提示"
             xlBook.Activate
             Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
             xlApp.Cells(6, 4) = Form11.Text1.Text
             'Exit Sub              
            Else    '你代码这里的Else就表示当前打开的工作簿里面,如果不是名为test.xlsx即触发下面的代码,显然这个循环可能导致重复打开同一个Excel表格而导致错误;例如本身你已经打开了3个名字均不为test.xlsx的工作簿,那么这里的Else不是要运行三次?
             Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & FileName1) '打开工件簿文件
             xlBook.Activate
             Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
             xlApp.Cells(6, 4) = Form11.Text1.Text
           End If
            Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
            xlSheet.Cells(6, 4) = Form11.Text1.Text
    Next


所以:建议做如下修改:
程序代码:
    For Each xlBook In xlApp.Workbooks
        If xlBook.Name = "test.xlsx" Then
            MsgBox "文件已打开!请不要重复打开。", vbOKOnly, "友情提示"
            Goto FileHasOpened
        End if
    Next
        Set xlBook = xlApp.Workbooks.Open(App.Path & "\" & FileName1) '打开工件簿文件
FileHasOpened:
       xlBook.Activate
       Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表
       xlsheet.Cells(6, 4) = Form11.Text1.Text  


改成如上才符合逻辑!

[ 本帖最后由 unsamesky 于 2015-1-1 23:58 编辑 ]
2015-01-01 23:56
快速回复:vb 无法保存 excel 内容
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020534 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved