乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 121|回复: 3

新手请教问题,用vb调用excel,第一次正常运行,第二次报错。谢谢

[复制链接]

4

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
26
发表于 2021-3-6 17:04:00 | 显示全部楼层 |阅读模式
Dim xlapp11 As New Excel.Application
Dim xlbook11 As Excel.Workbook
Dim jianche_XlsSheet_1 As Excel.Worksheet
Set xlapp11 = New Excel.Application
With xlapp11.Workbooks.Open(yuan_wenjian & jiancha_name_1 & "评估数据模板.XLSX")
        Set xlbook11 = xlapp11.Workbooks.Open(pinggu_wenjian)
        Set jianche_XlsSheet_1 = xlbook11.Worksheets(1)
        jianche_hang_1 = jianche_XlsSheet_1.Range("A65536").End(xlUp).Row              '查A列的上下限界,从列的开始往下查,
         Sheets(1).Select    ’**第二次这个地方报错**,报错内容为”远程服务器不存在或不能使用“
        Range("A4", Cells(jianche_hang_1, 10)).Select
        Selection.Copy .Worksheets(1).Range("A2")
        Set jianche_XlsSheet_2 = Excel.Application.ActiveWorkbook.Sheets(2)
             jianche_hang_2 = jianche_XlsSheet_2.Range("A65536").End(xlUp).Row              '查A列的上下限界,从列的开始往下查,
        Sheets(2).Select
        Range("A3", Cells(jianche_hang_2, 3)).Select              'TQI里程
        Selection.Copy .Worksheets(2).Range("A2")
        With xlapp11.Workbooks.Open(yuan_wenjian & jiancha_name_1 & "线路信息模板.XLSX")
                    Set xlbook12 = xlapp11.Workbooks.Open(xianlu_wenjian)
                    Set jianche_XlsSheet_1 = xlbook12.Worksheets(1)
                    jianche_hang_1 = jianche_XlsSheet_1.Range("H65536").End(xlUp).Row         
                    Sheets(1).Select
                    Range("A4", Cells(jianche_hang_1, 12)).Select                                  '复制"线路管界"
                    Selection.Copy .Worksheets(1).Range("A2")
                    Set jianche_XlsSheet_2 = Nothing
                    xlbook12.Close (True)
         End With
End With
    xlbook11.Close (True)
    xlapp11.Quit
    Set jianche_XlsSheet_1 = Nothing
    Set xlbook11 = Nothing
    Set xlapp11 = Nothing
回复

使用道具 举报

4

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
26
发表于 2021-3-7 15:34:00 | 显示全部楼层
问题已解决,记录一下方法,以供他人参考。
Sheets(1).Select 改为xlapp11.Sheets(1).Select 。Cells(jianche_hang_1, 10)改为jianche_XlsSheet_1.Cells(jianche_hang_1, 10)。Selection.Copy .Worksheets(1).Range("A2")改为xlapp11.Selection.Copy .Worksheets(1).Range("A2")。后面的也是这么改。
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2021-3-8 09:25:00 | 显示全部楼层
在EXCEL VBA环境内,默认了excelapp,所以可以直接sheets(1)。在VB里,没有这个默认,所以前面要加上excelapp。
另外select是录制时候产生的,对于程序来说,就没必要select了,这样快些。
回复

使用道具 举报

4

主题

10

帖子

1

银币

初来乍到

Rank: 1

铜币
26
发表于 2021-3-8 09:57:00 | 显示全部楼层

受教了,非常感谢。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-19 06:43 , Processed in 1.186758 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表