ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 10053|回复: 20

[分享] 封装成EXE的vba

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-5-30 18:47 | 显示全部楼层 |阅读模式
本帖最后由 lzqlaj 于 2017-5-30 18:50 编辑

有”宏“”的文件要运行,必须设置安全级别为“中”或“低”,才能启用“宏”。没有经验的人往往不知如道何设置。vba封装成dll,有时不能注册。即使注册成功,也要运行“宏”才能调用dll,封装成exe也一样。设想:如果用exe程序打开excel工作簿并在EXE中运行“宏”,那么就解决了启用“宏”的问题,运行速度肯定有些慢,但是不用设置安全级别。程序运行时,当前目录下没有汇总表和文件夹会新建。exe绝对没有病毒。欢迎测试。我的运行环境:win7+excel2003。

三小学生个人成绩前N名.rar

22.17 KB, 下载次数: 548

评分

3

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-30 19:15 | 显示全部楼层
工作表前两行是表头。格式固定,不能更改。

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-30 19:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-5-30 19:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢 分享  再分享下exe 代码就更好了

TA的精华主题

TA的得分主题

发表于 2017-5-30 20:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-5-30 22:17 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-31 15:06 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-31 15:20 | 显示全部楼层
Private Sub Form_Load()
    Dim xlApp As Excel.Application    'Excel对象
    Dim xlbook As Excel.Workbook    '工作簿
    Dim xlsheet As Excel.Worksheet    '工作表
    'retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX + 400, Me.CurrentY + 10, 249, 131, SWP_SHOWWINDOW)
    On Error Resume Next
    If IsFileExists(App.Path & "\" & "三小学生个人成绩前N名.xls") = True Then
        Set xlApp = GetObject(, "Excel.Application")     '判断Excel是否打开
        If Err.Number <> 0 Then    '如果未打开
            ' 文件存在时的处理
            Set ObjExcel = CreateObject("Excel.Application")    '第一层
            ObjExcel.Workbooks.Open (App.Path & "\" & "三小学生个人成绩前N名.xls")    ', , , , "987654321", "987654321"
            '显示打开对象
            ObjExcel.Visible = True
            '释放对象
            Set ObjExcel = Nothing
            Err.Clear
        End If
    Else
        ' 文件不存在时的处理
        Set xlApp = CreateObject("excel.application")    '第一层
        Set xlbook = xlApp.Workbooks.Add
        xlApp.Visible = True
        xlbook.Sheets(1).Name = "年级前30名"
        xlbook.Sheets(1).Range("a1") = "年级前30名"
        xlbook.Sheets(1).Range("a2") = "班级"
        xlbook.Sheets(1).Range("b2") = "姓名"
        xlbook.Sheets(1).Range("c2") = "语文"
        xlbook.Sheets(1).Range("d2") = "数学"
        xlbook.Sheets(1).Range("e2") = "英语"
        xlbook.Sheets(1).Range("f2") = "科学"
        xlbook.Sheets(1).Range("g2") = "总分"
        xlbook.Sheets(1).Range("h2") = "名次"
        xlbook.SaveAs App.Path & "\" & "三小学生个人成绩前N名.xls"
        'xlbook.Close
        'xlbook.Sheets(1).Range("A2").FormulaR1C1 = "=IF(RC[2]<>"""",ROW()-1,"""")"
        'xlbook.Sheets(1).Range("A2").AutoFill Destination:=Range("A2:A602"), Type:=xlFillDefault
    End If
    If FolderExists(App.Path & "\" & "各班") = False Then
        ' If Dir(BackuPath, vbDirectory) = "" Then '文件夹不存在
        MkDir (App.Path & "\" & "各班")     '在应用程序根目下,创建文件夹Backup
    End If
End Sub
Function IsFileExists(ByVal strFileName As String) As Boolean
    Dim objFileSystem As Object
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    If objFileSystem.FileExists(strFileName) = True Then
        IsFileExists = True
    Else
        IsFileExists = False
    End If
End Function
Public Function FileExists(ByVal File As String) As Boolean
    On Error Resume Next
    If (GetAttr(File) And vbDirectory) = False Then FileExists = True
    If Err Then FileExists = False: Err.Clear
End Function
Function FolderExists(ByVal Folder As String) As Boolean
    On Error Resume Next
    If GetAttr(Folder) And vbDirectory Then FolderExists = True
    If Err Then FolderExists = False: Err.Clear
End Function

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-31 15:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-8-17 20:47 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 16:29 , Processed in 0.047512 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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