需要在VB 6.0中以管理员模式运行Excel宏

时间:2014-11-11 06:31:00

标签: vb6

我在VB 6.0中编写此代码

我有一个excel文件,里面有一个宏。但是如果我打开excel作为管理员,宏将运行我得到一个以下代码,将打开excel程序作为ADMINISTRATOR但我无法打开已保存在驱动器中的特定Excel宏文件

私有声明函数ShellExecute Lib“shell32.dll”别名“ShellExecuteA”(ByVal hWnd As Long,ByVal lpOperation As String,ByVal lpFile As String,ByVal lpParameters As String,ByVal lpDirectory As String,ByVal nShowCmd As Long ) 只要 Const SW_SHOWNORMAL = 1

'这将用新书打开excel

Sub Main()

ShellExecute 0,“runas”,“C:\ Program Files(x86)\ Microsoft Office \ Office12 \ EXCEL.exe”,Command,vbNullString,SW_SHOWNORMAL

End Sub

但是我需要打开路径“C:\ Users \ user \ Desktop \ My Trading Robot \ Automation_Ver3.0.xlsm”中保存的excel文件,对于ADMINISTRATOR我没有给出任何密码我对我的笔记本电脑拥有ADMINISTRATOR权利 有人可以请帮助我如何使用Windows 07机器中的excel VB 6.0实现...?

提前致谢, Arun C M

1 个答案:

答案 0 :(得分:1)

有点不清楚你想做什么,但这可能会帮助你。它通过ShellExecute命令打开Excel,打开一个特定文件,然后运行一个宏:

Sub Main()

    ShellExecute 0, "runas", "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe", Command, vbNullString, SW_SHOWNORMAL

    Dim xl As Excel.Application
    Set xl = GetObject(, "Excel.Application")
    With xl
        .Visible = True
        .Workbooks.Open ("C:\Users\user\Desktop\My Trading Robot\Automation_Ver3.0.xlsm")
        .Run "YourMacroName"
    End With

End Sub

注意:GetObject方法将获取它找到的第一个Excel实例,因此请确保在执行之前您还没有运行Excel。