乐筑天下

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

[编程交流] 将值保存到excel和bac

[复制链接]

34

主题

105

帖子

91

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
224
发表于 2022-7-6 14:41:55 | 显示全部楼层 |阅读模式
你好
 
我有以下代码将值保存到excel
 
  1. Public strTitleBlockName As String
  2. Public MyTxtStr(0 To 7) As String
  3. Public Cnt, WorkbookOpen, RowCnt As Integer
  4. Public Excel As Excel.Application
  5. Public ExcelSheet, ExcelWorkbook As Object
  6. Public CurrRange As Range
  7. Public myvaratt As Variant
  8. Sub SaveCurrValues()
  9. If WorkbookOpen = 1 Then GoTo SkipCreatingWorkbook
  10.    ' Launch Excel.
  11.    
  12. Set Excel = New Excel.Application
  13.   
  14.    ' Create a new workbook and find the active sheet.
  15.   Set ExcelWorkbook = Excel.Workbooks.Add
  16.    Set ExcelSheet = Excel.ActiveWorkbook.ActiveSheet
  17.    
  18.   ExcelWorkbook.SaveAs "AutoGlassCalcStoredValues.xls", True
  19.   
  20. Excel.Visible = False
  21. RowCnt = 1
  22.      With Worksheets("Sheet1")
  23.    .Select
  24.    .Range("a1").Activate
  25.        End With
  26. MyTxtStr(0) = XOffset
  27. MyTxtStr(1) = YOffset
  28. MyTxtStr(2) = ScrRef
  29. MyTxtStr(3) = GlassSpec
  30. MyTxtStr(4) = GlassColRef
  31. MyTxtStr(5) = GlassRef
  32. MyTxtStr(6) = TextHeight
  33. MyTxtStr(7) = VPScale
  34.    
  35. SkipCreatingWorkbook:
  36. Cnt = 3
  37.    
  38.     For I = 0 To Cnt
  39.    
  40.    
  41.        Set CurrRange = ActiveCell
  42.            CurrRange.Value = MyTxtStr(I)
  43.                CurrRange.Offset(0, 1).Select
  44.    
  45.    Next
  46.    
  47.    RowCnt = RowCnt + 1
  48.    
  49.     With Worksheets("Sheet1")
  50.    .Select
  51.    .Range("a" & RowCnt).Activate
  52.        End With
  53.    
  54.   WorkbookOpen = 1 'tell the sub that excel has already been opened
  55.   
  56.    ExcelWorkbook.Save
  57.    ExcelWorkbook.Close
  58.   ' Excel.Application.Quit
  59.    'Excel.Application.
  60. End Sub

 
这很好用
 
它将值返回到acad vba表单中
 
 
我尝试了以下操作,但它返回了所需对象的错误??????
 
  1. Sub LoadCurrValues()
  2. Dim oExcel As Excel.Application
  3. Dim oWB As Workbook
  4. Set oExcel = New Excel.Application
  5. Set oWB = oExcel.Workbooks.Open("AutoGlassCalcStoredValues")
  6. Set ExcelSheet = Excel.ActiveWorkbook.ActiveSheet
  7. TxBxXOffset.Value = oWB.Range("a1").Value
  8. TxBxYOffset.Value = Range("b1")
  9. TxBxScrRef.Value = Range("c1")
  10. TxBxSpec.Value = Range("d1")
  11. CboGlsSpcCol.Value = Range("e1")
  12. TxBxRef.Value = Range("f1")
  13. TxBxTHght.Value = Range("g1")
  14. TxBxVPScale.Value = Range("h1")
  15.   
  16.    ExcelWorkbook.Save
  17.    ExcelWorkbook.Close
  18.   ' Excel.Application.Quit
  19.    'Excel.Application.
  20. End Sub
  21. cheers for any help!
  22. col
回复

使用道具 举报

6

主题

48

帖子

44

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 15:03:47 | 显示全部楼层
我玩了一会儿。我正在将AutoCAD 2008和2010与Excel 2007一起使用。我希望这有帮助。
 
  1. Sub LoadCurrValues()
  2.    Dim oExcel As Excel.Application
  3.    Dim oWB As Workbook
  4.    Set oExcel = New Excel.Application
  5.    Set oWB = oExcel.Workbooks.Open("c:\Testing.xls")
  6.    Set Excelsheet = Excel.ActiveWorkbook.ActiveSheet
  7.    TxBxXOffset.Value = Excelsheet.Range("a1").Value
  8.    TxBxYOffset.Value = Excelsheet.Range("b1").Value
  9.    TxBxScrRef.Value = Excelsheet.Range("c1").Value
  10.    TxBxSpec.Value = Excelsheet.Range("d1").Value
  11.    CboGlsSpcCol.Value = Excelsheet.Range("e1").Value
  12.    TxBxRef.Value = Excelsheet.Range("f1").Value
  13.    TxBxTHght.Value = Excelsheet.Range("g1").Value
  14.    TxBxVPScale.Value = Excelsheet.Range("h1").Value
  15.    oWB.Save
  16.    oExcel.Quit
  17. End Sub
回复

使用道具 举报

34

主题

105

帖子

91

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
224
发表于 2022-7-6 15:13:59 | 显示全部楼层
布莱恩,
 
谢谢你的回复。
 
我用excel 2007在Acad2009上运行了以下代码,但在acad 2008 excel 2003上返回错误“无效使用新关键字???
 
  1. Sub LoadCurrValues()
  2. Dim oExcel As Excel.Application
  3. Dim oWB As Workbook
  4.    Dim ExcelSheet As Object
  5.    Dim ExcelWorkbook As Object
  6.    On Error Resume Next
  7. Set oExcel = New Excel.Application
  8. Set oWB = oExcel.Workbooks.Open("AutoGlassCalcStoredValues")
  9. oExcel.Visible = False
  10. 'Set ExcelSheet = Excel.ActiveSheet
  11. 'set oExcel.Range(a1).Value
  12. UFcreateGlassAtt.TxBxXOffset.Value = oWB.ActiveSheet.Range("A1").Value
  13. UFcreateGlassAtt.TxBxYOffset.Value = oWB.ActiveSheet.Range("B1").Value
  14. UFcreateGlassAtt.TxBxScrRef.Value = oWB.ActiveSheet.Range("C1").Value
  15. UFcreateGlassAtt.TxBxSpec.Value = oWB.ActiveSheet.Range("D1").Value
  16. UFcreateGlassAtt.CboGlsSpcCol.Value = oWB.ActiveSheet.Range("E1").Value
  17. UFcreateGlassAtt.TxBxRef.Value = oWB.ActiveSheet.Range("F1").Value
  18. UFcreateGlassAtt.TxBxTHght.Value = oWB.ActiveSheet.Range("G1").Value
  19. UFcreateGlassAtt.TxBxVPScale.Value = oWB.ActiveSheet.Range("H1").Value
  20.   
  21.    oWB.Save
  22.    oWB.Close
  23.    If Err Then Err.Clear
  24.   ' Excel.Application.Quit
  25.    'Excel.Application.
  26. End Sub
回复

使用道具 举报

6

主题

48

帖子

44

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 15:22:55 | 显示全部楼层
根据我的经验,Excel 2003和2007之间的引用是不同的。我认为,如果你使用CreateObject(“Excel.Application”),它将同时适用于这两种应用程序,但我并不确定,因为我不再安装2003。我以前确实遇到过这种情况,但我不记得是怎么处理的。
如果不久没有其他人给出答案,我将尝试挖掘我的一些旧代码来找到它。
 
  1. Dim excelObj As Object
  2.    
  3. Set excelObj = CreateObject("excel.Application")
  4. excelObj.Visible = True
  5.    
  6. excelObj.workbooks.Open ("c:\testing.xls")
回复

使用道具 举报

34

主题

105

帖子

91

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
224
发表于 2022-7-6 15:33:39 | 显示全部楼层
谢谢Brian,我会查看我的一些其他代码,因为我确信我以前用excel做过这件事,它在2009年和2009年acad上都工作过,所以我不确定是不是其他原因导致了它?我必须仔细检查并比较一下。
 
干杯
 
col公司
回复

使用道具 举报

34

主题

105

帖子

91

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
224
发表于 2022-7-6 15:53:03 | 显示全部楼层
你好
 
我在网上找到了这个例子
 
对于excel 2003
 
  1. Sub BringToLife()
  2. On Error Resume Next
  3. Dim e As Excel.Application
  4. Set e = New Excel.Application
  5. e.Visible = True
  6. e.Workbooks.Add
  7. e.Worksheets(“Sheet1”).Cells(4, 4).Value = 256
  8. If Err Then MsgBox Error$
  9. End Sub

 
在我看来,我做得对吗?他们一定是其他原因导致了错误,但由于某种原因,在代码的“New Excel.Application”部分返回了错误。。。?
 
干杯
 
col公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:23 , Processed in 0.424460 second(s), 64 queries .

© 2020-2025 乐筑天下

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