Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 11829|回复: 32

[分享] 通过调用.DLL文件实现EXCEL的用户验证

[复制链接]
发表于 2007-7-24 18:19 | 显示全部楼层 |阅读模式

今天下午开始学习用VB封装VBA代码,这里作了一个示例,(注:本附件需要1金币方可下载,当然,如果你在本论坛发帖量超过100,可以在另外一帖直接下载,请见另外一帖 ^_^ .请理解)

可以用它来实现EXCEL的用户验证.还望高手拍砖.

附:VB源码:

Dim bllFlag As Boolean
Private Sub Command1_Click()
    Dim i As Integer
    Dim XLSOBJ As Object
    Set XLSOBJ = GetObject(, "Excel.Application")
    If Form1.Text1 <> Left(Form1.Combo1.Text, 1) Then
        MsgBox "ÃÜÂë´íÎó!ÇëÖØÐÂÊäÈë.  Ìáʾ:ÃÜÂë¾ÍÊÇÇ°ÃæµÄÊý×Ö. ^_^ "
        Form1.Text1 = ""
        Form1.Text1.SetFocus
        Exit Sub
    End If
    XLSOBJ.Visible = True
    Form1.Hide
    MsgBox "ÒѾ­½øÈëϵͳ,ÏÂÒ»²½²âÊÔÖÐ,½«×Ô¶¯Îª¹¤×÷±íÌí¼ÓÊý¾Ý,Çëµã»÷[È·¶¨]", vbOKOnly
    For i = 1 To 10
        XLSOBJ.ActiveWorkbook.Sheets((i Mod 2) + 1).Range("A" & i).Value = i
    Next i
    XLSOBJ.ActiveWorkbook.Sheets(1).Select
    MsgBox "¹§Ï²¹§Ï²,²âÊԳɹ¦!", vbOKOnly
End Sub

Private Sub Command2_Click()
    Dim XLSOBJ As Object
    On Error Resume Next
    Set XLSOBJ = GetObject(, "Excel.Application")
    bllFlag = True
    If XLSOBJ.Workbooks.Count <= 1 Then
        XLSOBJ.Quit
    Else
        XLSOBJ.ActiveWorkbook.Close SaveChanges:=False
        XLSOBJ.Visible = True
    End If
    Set XLSOBJ = Nothing
    Unload Form1
End Sub

Private Sub Form_Load()
    Dim i As Integer
    Dim XLSOBJ As Object
    bllFlag = False
    Set XLSOBJ = GetObject(, "Excel.Application")
    XLSOBJ.Visible = False
    Set XLSOBJ = Nothing
    Combo1.Clear
    For i = 1 To 5
        Form1.Combo1.AddItem i & " :" & Chr(i + 64)
    Next i
    Combo1.Text = "1 :A"
    Form1.Text1.Text = ""
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Not bllFlag Then
        Call Command2_Click
    End If
End Sub

'-----------------下面是主过程,用于显示窗体-------------------

Sub main()
    Form1.Show
End Sub

[此贴子已经被作者于2007-7-24 18:41:39编辑过]
发表于 2007-7-24 18:23 | 显示全部楼层
回复

使用道具 举报

发表于 2007-8-3 22:47 | 显示全部楼层
回复

使用道具 举报

发表于 2007-8-22 08:37 | 显示全部楼层

好的&nbsp; 学习下
回复

使用道具 举报

发表于 2007-8-22 08:58 | 显示全部楼层

BB,是封装前的还是封装后的?封装前的可以看看,封装后的就不看了,难不成你这么久都在搞这个?
回复

使用道具 举报

发表于 2007-9-4 16:54 | 显示全部楼层

为什么打开“DLL用户确认.xls”工作表时,VB代码出错?化了金币不能用?
回复

使用道具 举报

发表于 2007-9-4 16:59 | 显示全部楼层

QUOTE:
以下是引用zsd5237在2007-9-4 16:54:36的发言:
为什么打开“DLL用户确认.xls”工作表时,VB代码出错?化了金币不能用?

既然是VBA的,我就暂不学了吧~

回复

使用道具 举报

发表于 2007-9-4 17:08 | 显示全部楼层

DLL&nbsp; 就是动态数据库
回复

使用道具 举报

发表于 2007-9-4 17:13 | 显示全部楼层

除VB代码出错外,里面什么也没有,没有用户窗户,VB工程加密,公布的“附:VB源码:”一部天书,如:

If Form1.Text1 <> Left(Form1.Combo1.Text, 1) Then
        MsgBox "ÃÜÂë´íÎó!ÇëÖØÐÂÊäÈë.  Ìáʾ:ÃÜÂë¾ÍÊÇÇ°ÃæµÄÊý×Ö. ^_^ "
        Form1.Text1 = ""
        Form1.Text1.SetFocus
        Exit Sub
    End If
    XLSOBJ.Visible = True
    Form1.Hide
    MsgBox "ÒѾ­½øÈëϵͳ,ÏÂÒ»²½²âÊÔÖÐ,½«×Ô¶¯Îª¹¤×÷±íÌí¼ÓÊý¾Ý,Çëµã»÷[È·¶¨]", vbOKOnly
    For i = 1 To 10
        XLSOBJ.ActiveWorkbook.Sheets((i Mod 2) + 1).Range("A" & i).Value = i
    Next i
    XLSOBJ.ActiveWorkbook.Sheets(1).Select
    MsgBox "¹§Ï²¹§Ï²,²âÊԳɹ¦!", vbOKOnly
且End Sub

'-----------------下面是主过程,用于显示窗体-------------------

Sub main()
    Form1.Show
上面用于显示窗体的主过程没有。

是什么道理????

回复

使用道具 举报

发表于 2007-9-6 06:57 | 显示全部楼层

“如果没有VB环境,请将压缩包解压,打开,<<DLL用户确认.xls>>文件,在VBE窗口,"工具"-->"引用"-->>"添加",找到解压出来的,<<DLL用户确认.dll>>文件,添加进来,保存EXCEL文件后,重新打开就可以了.”

还是不行。

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-29 10:27 , Processed in 0.226375 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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