ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: GoodFortune

VBA封装为Dll的例子、方法与总结【逐步完善中...】

  [复制链接]
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2009-8-11 22:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 该帖被管理员或版主屏蔽

TA的精华主题

TA的得分主题

发表于 2009-8-18 20:41 | 显示全部楼层
按照你说的例子做了一次,不成功。

TA的精华主题

TA的得分主题

发表于 2009-8-18 23:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-8-18 23:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-8-19 07:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-8-28 00:08 | 显示全部楼层
封装DLL是好,可惜就是只能在本机引用。
若在其它机器上用是不是只能将DLL再复制一份过去?

TA的精华主题

TA的得分主题

发表于 2009-9-27 14:33 | 显示全部楼层
封装我自己写的VBA程序以后,运行出现错误91
object variable or with block variable not set

这是怎么回事啊?谢谢了

TA的精华主题

TA的得分主题

发表于 2009-9-27 14:34 | 显示全部楼层
具体的封装代码


Sub dt()

Dim lngCount As Long
   Dim s(100)
   Dim NUM As Integer

    book_name = ActiveWorkbook.Name

   
  With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show
       For lngCount = 1 To .SelectedItems.Count
                    NUM = lngCount
                  s(NUM) = .SelectedItems(lngCount)
       Next lngCount
                 
    End With


Application.DisplayAlerts = False

For kk = 1 To 10

    On Error Resume Next

   Sheets("xl" & kk).Select

   If Err.Number <> 0 Then
      Err.Clear
      GoTo a0
       End If
   
    ActiveWindow.SelectedSheets.Delete
a0: Next kk

On Error GoTo 0



  m = 1
  h = 65535
  
  
aa = 0
JJ = 0

  a0 = 0
  a1 = 0
  A2 = 0
  A3 = 0
  A4 = 0
  A5 = 0
  A6 = 0
  A7 = 0
  B0 = 0
  B1 = 0
  B2 = 0
  
   For NUM = 1 To Application.FileDialog(msoFileDialogOpen).SelectedItems.Count
   
   Set fso = New FileSystemObject
   Set xText = fso.OpenTextFile(s(NUM))
   Do While Not xText.AtEndOfStream
       strLine = xText.ReadLine
       j = Trim(strLine)
       'MsgBox j
       'If InStr(1, j, "Measurement Result", 1) > 0 And InStr(1, j, "MSISDN: 13226444742;", 1) > 0 Then
       If InStr(1, j, "Measurement Result", 1) > 0 Then
         
       hh = hh + 1
         k1 = Right(j, 47)
         k2 = Mid(k1, 1, 2)
         k3 = Right(j, 50)
         k4 = Mid(k3, 1, 2)
         
         k5 = Right(j, Len(j) - InStr(1, j, "7F F0", 1) + 1)
         k6 = Mid(k5, 124, 2)
         k7 = Mid(k5, 127, 2)
         
         
         k8 = Mid(k5, 91, 2)    'Handover Triggered Indication(HoCause)


         
         
         JJ = JJ + 1
  
         If h > 65534 Then
          Sheets.Add.Name = "XL" & m
          m = m + 1
          h = 2
         
          Sheets("XL" & m - 1).Cells(1, 5) = "&Iuml;&Acirc;&ETH;&ETH;&micro;&ccedil;&AElig;&frac12;"
          Sheets("XL" & m - 1).Cells(1, 6) = "&Iuml;&Acirc;&ETH;&ETH;&Ouml;&Ecirc;&Aacute;&iquest;"
          Sheets("XL" & m - 1).Cells(1, 7) = "&Eacute;&Iuml;&ETH;&ETH;&micro;&ccedil;&AElig;&frac12;"
          Sheets("XL" & m - 1).Cells(1, 8) = "&Eacute;&Iuml;&ETH;&ETH;&Ouml;&Ecirc;&Aacute;&iquest;"
         
         
         
          Sheets("XL" & m - 1).Cells(h, 5) = "&Iuml;&Acirc;&ETH;&ETH;&micro;&ccedil;&AElig;&frac12;"
          Sheets("XL" & m - 1).Cells(h, 6) = "&Iuml;&Acirc;&ETH;&ETH;&Ouml;&Ecirc;&Aacute;&iquest;"
          Sheets("XL" & m - 1).Cells(h, 7) = "&Eacute;&Iuml;&ETH;&ETH;&micro;&ccedil;&AElig;&frac12;"
          Sheets("XL" & m - 1).Cells(h, 8) = "&Eacute;&Iuml;&ETH;&ETH;&Ouml;&Ecirc;&Aacute;&iquest;"
          End If

        
        Sheets("XL" & m - 1).Cells(h, 1) = k4
        Range("e" & h).Select
        ActiveCell.FormulaR1C1 = "=bIN2DEC(Mid(HEX2BIN(RC[-4], 8),3, 6)) - 110"
                  
        Sheets("XL" & m - 1).Cells(h, 2) = k2
        Range("f" & h).Select
        ActiveCell.FormulaR1C1 = "=BIN2OCt(Mid(HEX2BIN(RC[-4], 8), 5,3))"
        
        Sheets("XL" & m - 1).Cells(h, 3) = k6
        Range("g" & h).Select
        ActiveCell.FormulaR1C1 = "=BIN2DEC(right(HEX2BIN(RC[-4], 8), 6)) - 110"
        
        Sheets("XL" & m - 1).Cells(h, 4) = k7
        Range("h" & h).Select
        ActiveCell.FormulaR1C1 = "=BIN2OCt(right(HEX2BIN(RC[-4], 8), 3))"
        
        h = h + 1
   
        End If
                        
   
   
  Loop
  
  xText.Close

   Next NUM
      
      ' Workbooks.Open Filename:=s(NUM)
       'book_name1 = ActiveWorkbook.Name
      
      
End Sub

TA的精华主题

TA的得分主题

发表于 2009-10-3 09:26 | 显示全部楼层
请各位高手封装一段,大家学习一下可以不喃【强烈建议】

test.rar

18.66 KB, 下载次数: 133

TA的精华主题

TA的得分主题

发表于 2009-10-3 10:15 | 显示全部楼层
好强.每一次进EH,发现自已就像一料沙子般渺小.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 12:35 , Processed in 0.045908 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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