vb宏代码打开excel文件(vb打开文件夹代码)

Exce表格网 2023-02-11 10:20 编辑:admin 90阅读

1. vb打开文件夹代码

1.用Shell函数打开指定的文件夹

代码如下:

Sub exceloffice()

'*****************

'上面一连串代码

'最后打开文件夹看下效果

Dim sPath As String

sPath = "c:\test"

Shell "explorer.exe " & sPath, vbMaximizedFocus

End Sub

Shell函数是vba内置的函数,使用起来非常方便。它可以直接运行各种exe程序,同时附带参数运行。

使用Shell函数还可以直接运行Python打包后的exe程序,从而借助Python的强大功能助推VBA。

在本例中,Shell函数通过调用文件资源管理器explorer.exe直接打开指定的文件夹,其中 vbMaximizedFocus表示打开的时候最大化显示。

方法二:用Shell对象打开指定的文件夹

代码如下:

Sub exceloffice()

'*****************

'上面一连串代码

'最后打开文件夹看下效果

Dim sPath As String

sPath = "c:\test"

Dim oShell As Object

Set oShell = VBA.CreateObject("shell.application")

With oShell

.Open (sPath)

End With

End Sub

其实这个原理和Shell是一样的,但是Shell对象提供了自动化接口,功能更全,不仅可以打开文件夹,还可以做很多操作电脑的事情。

比如切换到桌面、打开运行对话框、关闭电脑等等,如下所示

Sub exceloffice()

Set oShell = CreateObject("shell.application")

With oShell

'切换到桌面

.ToggleDesktop

'打开运行对话框

.FileRun

'关闭电脑,记得保存文件

.ShutdownWindows

End With

End Sub

2. 怎么打开excel宏程序

首先,我们需要打开电脑桌面上的【excel】,没有软件的话需要提前进行下载;

2

打开【excel】之后点击左上角的【文件】打开左侧的功能栏后点击底部的【选项】;

3

打开【选项】之后点击左侧功能栏底部的【信任中心】后打开右侧的【信任中心设置】;

4

打开【信任中心设置】之后点击左侧【宏设置】并勾选右侧的【启用所有宏】点击右下角【确定】即可。

3. excel vb 打开文件

首先,工程-引用microsoftExcel11.0)bjectLibrary然后代码如下:

DimxlAppAsObjectDimxlBookAsObjectSetxlApp=CreateObject("Excel.Application"

)SetxlBook=xlApp.Workbooks.AddWithxlAppxlApp.Visible=False.Rows(1).Font.Bold=True'设置第一行为粗体.Cells(10,10).Value="姓名".Application.Visible=TrueEndWithSetxlApp=NothingSetxlBook=Nothing如想了解其他操作excel的代码,可以在excel中,点击菜单的工具——宏——录制新宏。

然后你手动对excel操作,操作完成后停止录制。

再点击工具——宏——visualbasic编辑器,找到刚才录制的宏,就可以看到刚才对excel所做的操作对应的vb代码了。

4. excel打开文件自动启用宏vba

能的,宏的名字改为auto_exec,那么打开EXCEL就自动开始运行了。

5. excel 宏 vb

EXCEL表格的宏是指基于VB的一种宏语言VBA脚本,主要用于扩展Microsoft Office软件如Excel的功能。Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。启用宏步骤如下。

1,打开Excel表格程序,点击左上角的“文件”。

2,在窗口中点击“选项”,点击打开。

3,在窗口中点击“信任中心”,点击打开。

4,在窗口中点击“设置信任中心”。

5,最后,在窗口中设置启用宏即可,问题解决。

6. vb控制excel执行一个宏

Option Base 1

Dim zbdf0(), zbdfl(), min_zb(), max_zb(), zbh(), p0(), pl(), pclogp(), h(), w(), sum_h As Single

Dim temp, fw, df As Variant

Dim SZfCommandBar As CommandBar

Dim SZfCommandBarButton As CommandBarButton

Public n, m

Private Sub Workbook_BeforeClose(CanceI As Boolean)

Application.CommandBars("熵值法").Delete

End Sub

Private Sub Workbook_open()

On Error Resume Next

Application.CommandBars("熵值法").Delete

Set SZfCommandBar = Application.CommandBars.Add("熵值法")

With SZfCommandBar.Controls

Set SZfCommandBarButton = .Add(msoControlButton)

With szfCommand.BarButton

.Style = msoButtonlconAndCaption

.Caption = "熵值法"

.OnAction = "S2F"

End With

End With

SZfCommandBar.ViSmle = True

End Sub

Private Sub S2F()

On Error Resume Next

fw = InputBox("请输入数据在EXCEL中的起始结束位置" & vbCrLf & vbCrLf & " ※一定要正确输入,否则按确定后将会出错! ", "输入范围", ActiveWindow.RangeSelection.AddressLocal(0, 0))

If Len(Trim(fw)) = 0 Then

MsgBox "没有输入正确范围,请重新执行程序输入正确的数据范围!", vbOKOnly, "没有输入"

Else

n = Range(fw).Rows.Count

m = Range(fw).Coluruns.Count

ReDim zbdf0(n, m), zbdfl(n, m), min_zb(m), max_zb(m), zbh(m), pO(n, m), pl(n, m), pclogp(n, m), h(m), w(m)

For i = l To n

For J = 1 To m

zbdf0(i, J) = ActiveSheet.Range(fw).Cells(i, J)

Next

Next

For J = 1 To m

min_zb(J) = zbdfO(1, J)

max_zb(J) = zbdfO(1, J)

zbh(J) = 0

For i = l To n

If min_zb(J) > zbdfO(i, J) Then

min_zb(J) = zbdf0(i, J)

End If

If max_zb(J) < zbdf0(i, J) Then

max_zb(J) = zbdf0(i, J)

End If

zbh(J) = zbh(J) + zbdf0(i, J)

Next

Next

For J = 1 To m

zbh(J) = 0

For i = 1 To n

zbdfl(i, J) = IIf((min_zb(J)) >= 0, zbdf0(i, J), (zbdm(i, J) - mm_zb(J)) / (max_zb(J) - mim_zb(J)))

zbh(J) = zbh(J) + zbdfl(i, J)

Next

Next

sum_h = 0

For J = 1 To m

h(J) = 0

For i = l To n

p0(i, J) = zbdfl(i, J) / zbh(J)

pl(i, J) = 10000 * pO(i, J) + 1

pclogp(i, J) = pl(i, J) * ApplicaonWorksheetFunction.Logl0(pl(i, J))

h(J) = h(J) + pelogp(i, J)

Next

sum_h = sum_h + h(J)

Next

For J = 1 To m

w(J) = h(J) / sum_h

Next

df = Applicatin.WorksheetFunction.MMun(pclogp, Application.WorksheetFunction.Transpose(w))

Application.Worksheets("熵值法输出").Delete

Worksheets.Add after:=Sheets(Application.Worksheets.Count)

Appliction.ActiveSheet.Name = "熵值法输出"

Columns("B:B").ColumnWidth = 15

[B1] = "熵值法得分"

For i = 2 To n + 1

Cells(i, 2).Value = df(i - 1, 1)

Next

[C1] = "熵值法排名"

Range("C2:C" & (n + l)).FormulaArray = "=RANK(RC[-1 ]:R[" & (n - 1) & "l]C[-1 ],R2C2:R" & n + l & "C21)"

End If

End Sub

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片