专业的编程技术博客社区

网站首页 > 博客文章 正文

Excel如何运行可执行文件,别急,用过vba Shell函数的都知道

baijin 2024-09-08 01:49:37 博客文章 6 ℃ 0 评论

由于Excel和Windows的关系,天然就赋予了强大的基因。执行个文件真的太小意思了。


vba shell 函数

格式:Shell(PathName[,WindowStyle])
PathName :要执行的程序名,包括目录或文件夹
WindowStyle :程序运行时窗口的样式

例:Shell "control.exe" '打开Windows控制面板

更多功能看下图,说了基因强大,由于是一个家族的软件,所以在windows系统之下,无所不能的样子,有兴趣可以自己去发现。

使用方法

左侧为命令功能代码表,也就是执行命令使用的操作符,具体操作在右边。

下拉组合框可以选择功能,选择之后单击执行,就会执行相应的系统命令。

具体做这个有什么用呢?我也思考了很久,发现可能真没什么用,但是对于一个电脑小白来说,或许有点用处。

比如要打开系统中的某个功能项的时候,就要在开始里找好久,有些根本不知道如何查找。

所以,这个工具的可以拿出来了。

例如,需要打开密码管理,进行密码设置的时候,可以打开这个文件选择密码,单击执行按钮之后,就打开密码管理功能了。

虽然在开始里面也很好找,但是如果要打开组策略呢!是不是就有点犯难了?

也不难,只要认识组策略就以上面的方法操作就可以打开了。

不然就要在控制面板里找啊找。

其实,Shell执行了一个代码:Shell "cmd.exe /c gpedit.msc "

完整代码

这个例子代码量很少,所以就全部贴出来了。

喜欢的赶快收藏起来,不要错过哟。

Option Explicit
Private Sub CommandButton1_Click()
Dim Strr As String
Strr = Me.OLEObjects("ComboBox1").Object.Value
If VBA.Len(Strr) = 0 Then Exit Sub
Dim R As Range, Rx As Range
''定义功能名称单元格区域
Set R = Me.Range("D2:D" & Range("D65535").End(xlUp).Row)
For Each Rx In R ''遍历名称
    If Rx.Value = Strr Then ''如果找到相同名称
        Shell Rx.Offset(0, -1).Value ''执行命令
        Exit For
    End If
Next Rx
End Sub
Private Sub Worksheet_Activate()
 Dim LsVarr As String
 LsVarr = Me.Range("D2:D" & Range("D65535").End(xlUp).Row).Address
 ''ComboBox组合框赋值
 Me.OLEObjects("ComboBox1").ListFillRange = LsVarr
End Sub

Shell命令

上图为简单的一些系统命令,收藏备用。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表