| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2563 人关注过本帖
标题:用VB向Excel前插入工作表没错但在后面插入工作表就出错(代码在贴内)
只看楼主 加入收藏
shi781203
Rank: 2
来 自:广东省
等 级:论坛游民
帖 子:112
专家分:50
注 册:2011-3-18
结帖率:37.14%
收藏
已结贴  问题点数:20 回复次数:4 
用VB向Excel前插入工作表没错但在后面插入工作表就出错(代码在贴内)
Option Explicit
Dim VBExcel As excel.Application
Dim VBExcel_Book As excel.Workbook
Dim VBExcel_sheet As excel.Worksheet
Dim MyFile As Object
Dim FileName As String

Private Sub Command1_Click()
Dim sht2285 As Boolean, i As Integer
sht2285 = False

For i = 1 To VBExcel.Sheets.Count
   If VBExcel.Sheets(i).Name = "插入" Then sht2285 = True
Next

If Not sht2285 Then
   【代码1能通过编译,但运行时出错,请高手指点指点】VBExcel.Sheets.Add after:=Sheets(Sheets.Count) '在工作表后加入一个工作表
   【代码2能够顺利运行】VBExcel.Sheets.Add    '在工作表前加入一个工作表
           VBExcel.ActiveSheet.Name = "插入"
End If
End Sub

Private Sub Command2_Click()    '修改指定工作表名按扭
    VBExcel_Book.Sheets("Sheet2").Name = "修改工作表名"
End Sub

Private Sub Form_Load()
    Set MyFile = CreateObject("Scripting.FileSystemObject")
    Set VBExcel = CreateObject("Excel.Application")
    FileName = App.Path & "\新创建.XLS"

If MyFile.FileExists(FileName) = False Then
    With VBExcel
        .Workbooks.Add
         With ActiveWorkbook
            .SaveAs FileName
            .Close
         End With
        .Quit
    End With
End If
   
    '设置Excel为不可见
    VBExcel.Visible = False
    Set VBExcel_Book = VBExcel.Workbooks.Open(FileName)

End Sub

Private Sub Form_Unload(Cancel As Integer)
'关闭Excel文件
Set VBExcel_sheet = Nothing
VBExcel.ActiveWorkbook.Close savechanges:=True '保存对EXCELL进行更改。
Set VBExcel_Book = Nothing
VBExcel.Quit
Set VBExcel = Nothing
End Sub
搜索更多相关主题的帖子: 工作表 Excel 
2016-06-20 12:53
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:20 
按照你的说法报错应该是在这里(话说,那里出现问题贴哪段就好,不要贴太多了。太多了别人不乐意看的)
程序代码:
Private Sub Command1_Click()
Dim sht2285 As Boolean, i As Integer
sht2285 = False

For i = 1 To VBExcel.Sheets.Count
   If VBExcel.Sheets(i).Name = "插入" Then sht2285 = True
Next

If Not sht2285 Then
   【代码1能通过编译,但运行时出错,请高手指点指点】VBExcel.Sheets.Add after:=Sheets(Sheets.Count) '在工作表后加入一个工作表
   【代码2能够顺利运行】VBExcel.Sheets.Add    '在工作表前加入一个工作表
           VBExcel.ActiveSheet.Name = "插入"
End If
End Sub

我这里没有VB,我改成VBA的代码是可以正常运行的。而且根据你的代码是先后插再前插的,前插的表改名
难道VB里会不一样? 那只能期待有VB的替你测试了。
2016-06-20 14:40
shi781203
Rank: 2
来 自:广东省
等 级:论坛游民
帖 子:112
专家分:50
注 册:2011-3-18
收藏
得分:0 
回复 2楼 xiangyue0510
你的回答好像没有答一样,代码是本人进行测试的时候所写的,一字不漏的粘贴过来的,只要把代码复制到VB中就能很快的进行测试!

飞点燃费盐--历史上至有型的计算机病毒(能感染你是我的荣幸,也是你的光荣!)
2016-06-20 16:34
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:941
专家分:5244
注 册:2015-8-10
收藏
得分:0 
不是说了么,VBA下代码没有问题。按理说VBA中的代码到VB基本不会有什么问题。而且百度上也有类似的代码可以用的。
也可能在VB下有问题,但是我没有装VB,因为WIN10不支持VB6,等有VB的人给你调试下。
另外,你自己也可以加中断好好的看一下,说不定自己就找到原因了。

别人给你测试了就可以了,至少证明那一小段代码本身没有问题。搞的好像别人欠你什么似的。反正我不会给你专门装个系统和VB的。
2016-06-20 17:34
lxlyhu
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-12-12
收藏
得分:0 
Sub test()
     Dim sht2285 As Boolean, i As Integer, VBExcel
     Set VBExcel = Application
     sht2285 = False
     For i = 1 To VBExcel.Sheets.Count
        If VBExcel.Sheets(i).Name = "插入" Then sht2285 = True
     Next
   
     If Not sht2285 Then
        VBExcel.Sheets.Add after:=Sheets(Sheets.Count) '在工作表后加入一个工作表——————代码没有问题,可以执行
        VBExcel.ActiveSheet.Name = "插入"
    End If
 End Sub


多薄多表合并,一键帮你搞定!——mergebooks.dll
2016-07-05 20:03
快速回复:用VB向Excel前插入工作表没错但在后面插入工作表就出错(代码在贴内)
数据加载中...
 
   



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

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