明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1866|回复: 16

求教大神,在CAD VBA程序里面如何打开这个CAD文件路径下的一个excel文件

[复制链接]
发表于 2017-8-15 16:27:10 | 显示全部楼层 |阅读模式
如题,CAD文件夹里面包含一个excel文件,如何利用CAD 里面的VBA程序打开这个excel文件呢
发表于 2017-8-16 10:13:57 | 显示全部楼层
  1. (defun c:tt(/ CAD DIR DOC EXCEL WORKBOOKS X XLS)
  2.   (setq cad(vlax-get-acad-object))
  3.   (setq doc(vla-get-ActiveDocument cad))
  4.   (setq dir(vl-filename-directory(vlax-get doc 'FullName)))
  5.   (setq xls(vl-directory-files dir"*.xls*"1));xls文件列表
  6.   (setq excel(vlax-get-or-create-object "excel.application"))
  7.   (setq xls(mapcar'(lambda(x)(strcat dir "\\"x))xls))
  8.   (vla-put-visible excel 1)
  9.   (if excel
  10.         (progn
  11.           (setq Workbooks(vlax-get-property excel 'Workbooks))
  12.           (foreach x xls(vlax-invoke-method WorkBooks 'Open x))
  13.           )
  14.         (list(alert"未安装excel")(exit)))
  15.   (prompt"***大懒猪荣誉出品***")
  16.   (princ)
  17.   )
 楼主| 发表于 2017-8-16 15:57:59 | 显示全部楼层
vbcad 发表于 2017-8-15 19:23
Dim MyPath As String, MyName As String
Dim objExcel As Object, objBook As Object, objSheet As Objec ...

Public Sub 导材料实验()
Dim MyPath As String
Dim objExcel As Object, objBook As Object
Dim objSheet As Excel.Workbook

Set objExcel = CreateObject("Excel.Application") '建立EXCEL对象


MyPath = Dir(ThisDrawing.Path & "\*.xls")   ' 指定路径为当前脚本目录。

Do While MyPath <> "" ' 开始循环。
        Set objSheet = Workbooks.Open(ThisWorkbook.Path & "\" & MyPath)
        Set objBook = objExcel.Workbooks.Open(FilePath) '打开表格文件
   
    MyPath = Dir ' 查找下一个
Loop
End Sub
我用的你的程序,稍作修改做的,运行到Dim objSheet As Excel.Workbook
提示用户类型未定义
发表于 2017-8-16 12:54:21 | 显示全部楼层
Sub LinkExcel(ExcelApp)
    On Error Resume Next
    Set ExcelApp = GetObject(, "Excel.application")
    If Err Then
        Err.Clear
        Set ExcelApp = CreateObject("Excel.application")
        If Err Then
            MsgBox ("不能运行Excel,请检查是否安装了Excel")
            Exit Sub
        End If
        ExcelApp.Application.Visible = True
        ExcelApp.Workbooks.Add
    End If
    ExcelApp.StatusBar = "Ready"
End Sub
 楼主| 发表于 2017-8-15 16:45:48 | 显示全部楼层
Public Sub 导材料实验()
Dim wb As Workbook, wk As Workbook, myfile$
myfile = Dir(ThisDrawing.Path & "\*.xls")
Set wb = Workbooks.Open(ThisDrawing.Path & "\" & myfile)
Set wk = GetObject(ThisDrawing.Path & "\" & myfile)
        


End Sub

这是我一开始编的程序,结果一运行就提示类型未定义
发表于 2017-8-15 17:03:28 | 显示全部楼层
发表于 2017-8-15 17:04:04 | 显示全部楼层
workbooks是什么?
发表于 2017-8-15 19:23:16 | 显示全部楼层
Dim MyPath As String, MyName As String
Dim objExcel As Object, objBook As Object, objSheet As Object

Set objExcel = CreateObject("Excel.Application") '建立EXCEL对象
objExcel .Visible = True'可见

MyPath = App.Path  & "\"  ' 指定路径为当前脚本目录。
MyName = Dir(MyPath, vbNormal) ' 找寻第一项。
Do While MyName <> "" ' 开始循环。
    Debug.Print MyName ' 将其名称显示出来。

    if instr(lcase(MyName),".xls") then '如果MyName中的扩展名是XLS则打开表格文件
        Set objBook = objExcel.Workbooks.Open(FilePath) '打开表格文件
    endif               
    MyName = Dir ' 查找下一个
Loop

点评

还没有试,先谢谢兄弟了  发表于 2017-8-16 08:40
 楼主| 发表于 2017-8-16 10:01:26 | 显示全部楼层
vbcad 发表于 2017-8-15 19:23
Dim MyPath As String, MyName As String
Dim objExcel As Object, objBook As Object, objSheet As Objec ...

C:\Users\Administrator\Desktop
 楼主| 发表于 2017-8-16 10:13:25 | 显示全部楼层
vbcad 发表于 2017-8-15 19:23
Dim MyPath As String, MyName As String
Dim objExcel As Object, objBook As Object, objSheet As Objec ...

objExcel .Visible = True '可见
程序运行到这一步的时候提示无效或不合格的引用
 楼主| 发表于 2017-8-16 10:23:01 | 显示全部楼层
发表于 2017-8-16 10:28:41 | 显示全部楼层

VBA同理
<"***大懒猪荣誉出品***">
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:43 , Processed in 0.174636 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表