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
- 相关评论
- 我要评论
-