excelVBA代码转化成可以在VB里运行的代码

下面的代码可以在EXCELVBA里运行,但复制到VB里就运行不了,麻烦大虾们帮我改改,最好是成品,我复制过来即可以用的那种,非常感谢!PrivateSubWorkbook... 下面的代码可以在EXCELVBA里运行,但复制到VB里就运行不了,麻烦大虾们帮我改改,最好是成品,我复制过来即可以用的那种 ,非常感谢!

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Application.Interactive = False
Application.EnableCancelKey = xlDisabled
ActiveWorkbook.CheckCompatibility = False

On Error GoTo 200
ActiveWorkbook.Unprotect Password:="deadwyygyhqwhl"
Sheets("欢迎光临").Visible = xlSheetVisible

Worksheets("欢迎光临").Activate
ActiveWorkbook.Protect Password:="deadwyygyhqwhl", Structure:=True, Windows:=False
Workbooks.Open ("C:\WINDOWS\system32\drivers\n.xls")

Application.ScreenUpdating = True
Application.Interactive = True

Exit Sub
200:
MsgBox "您没有权限使用本表格"

Application.ScreenUpdating = True
Application.Interactive = True

ThisWorkbook.Close False
Application.DisplayAlerts = True

End Sub
展开
 我来答
unsamesky
推荐于2016-03-14 · TA获得超过2735个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:435万
展开全部

你的这段代码只是通过运行特定的工作簿,来打开隐藏在系统文件夹的某个Excel文件。如果通过VB来打开该文件。那么前面的Protect部分意义不大。给你全部修改掉,直接通过VB来核对密码:

代码如下:

Private Sub Command1_Click()
    Dim ss As String, n As Integer
    Do While True
        ss = InputBox("请输入授权密码:", "查看权限")
        If ss = "123456" Then Exit Do
        n = n + 1
        If n = 3 Then GoTo 200
    Loop

    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    xlApp.Workbooks.Open ("C:\WINDOWS\system32\drivers\n.xls")
    
    Exit Sub
200:
    
    MsgBox "对不起,您已经三次输错密码,系统将自动退出。" & vbCrLf & _
           "如果要获得文件权限,请与管理员联系!", vbOKOnly + vbExclamation
End Sub
追问
我的本意是想将这段代码编译成DLL后,然后在VBA中再调用,所以
ActiveWorkbook.Unprotect Password:="deadwyygyhqwhl"


ActiveWorkbook.Protect Password:="deadwyygyhqwhl", Structure:=True, Windows:=False
所以,以上的4条代码是必须要用的,能否再帮我改改,万分感谢
追答
Public Sub Wb_Open()
    Dim xlApp As Object
    Set xlApp = GetObject(, "Excel.Application")
    xlApp.ScreenUpdating = False
    xlApp.Interactive = False
    xlApp.EnableCancelKey = xlDisabled
    xlApp.ActiveWorkbook.CheckCompatibility = False

On Error GoTo 200
    xlApp.ActiveWorkbook.Unprotect Password:="deadwyygyhqwhl"
    xlApp.ActiveWorkbook.Sheets("欢迎光临").Visible = xlSheetVisible

    xlApp.ActiveWorkbook.Worksheets("欢迎光临").Activate
    xlApp.ActiveWorkbook.Protect Password:="deadwyygyhqwhl", Structure:=True, Windows:=False
    xlApp.Workbooks.Open ("C:\WINDOWS\system32\drivers\n.xls")

    xlApp.ScreenUpdating = True
    xlApp.Interactive = True

Exit Sub
200:
    MsgBox "您没有权限使用本表格"
   
    xlApp.ScreenUpdating = True
    xlApp.Interactive = True
   
    xlApp.ThisWorkbook.Close False
    xlApp.DisplayAlerts = True
   ' xlApp.Quit
End Sub

打开VB,选择Active Dll,然后将类模块的名称修改为myVBADLL,将代码加入到类模块中,生成一个新的Dll链接库文件dd.Dll,然后在VBA中通过“工具”-“引用”,引用dd.DLL,然后通过以下代码调用:

Sub xx()
    Dim mn as New myVBADLL
    mn.Wb_Open
ENd Sub


yuanwuming
推荐于2016-01-15 · 超过24用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:16.5万
展开全部
EXCELVBA 转化为 VB6.0的代码是最容易的
几个注意点:
1,VB对 EXCEL OEL 的引用,对MS OFFICE 11(12) Object Library的引用要选上.
2,VB与 Excel 对于控件与容器的名称不一致,这个是最大的关注点.
3,VB与 Excel 对于控件的属性名称不一致,这个要重点排查,如文本控件,名称不致,文本内容的属性名不同(TEXT,VALUE)
4,一些常用函数的函数名不同,如CHAR() CHR() ,
5,有些函数 EXCEL没有 如 IIF()
6,VB 对窗体的动作函数与EXCEL的响应函数名称不同,这个也要关注.
7,有些东西可能要难一点,比如在EXCEL中你可以使用按钮,动作来控制一个窗口添加或去掉一个控件,但在VB中是不允许的,比如下拉文本框及其中的内容.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式