在VBA中,怎样打开或者调用另一个EXCEL文件

2024-11-23 18:07:10
推荐回答(3个)
回答1:

ThisWorkbook属性可以返回一个 Workbook 对象,该对象代表当前宏代码运行的工作簿,而Path属性可以返回文件的路径这样就可以用在Workbook_Open事件中加入下面的代码打开“报表.xls”了。
Private Sub Workbook_Open()
Dim FN As String
FN = ThisWorkbook.Path & "\报表.xls"
If Len(Dir(FN)) = 0 Then
MsgBox "找不到文件:" & vbCrLf & FN, vbExclamation, "错误"
Else
Workbooks.Open Filename:=ThisWorkbook.Path & "\报表.xls"
End If
End Sub
而要打开一个文件夹里所有的文件,就需要用到FileSystemObject 对象,下面这个例子是在一个新工作表中列出指定文件夹内所有xls文件的实例:
Sub ShowAllXlsFile()
Dim GetFile As String, GetPFN As String, GetExt As String
Dim Fso, PF, AF, FN, i, j
GetFile = Application.GetOpenFilename("Excel 文件 (*.xls), *.xls", , "请选择文件夹所在的任意一文件")
If CStr(GetFile) <> "False" Then
Sheets.Add
i = 0
j = 0
Set Fso = CreateObject("Scripting.FileSystemObject")
GetPF = Fso.GetParentFolderName(GetFile) & "\"
Set PF = Fso.GetFolder(GetPF)
Set AF = PF.Files
For Each FN In AF
j = j + 1
GetExt = Fso.GetExtensionName(FN)
If GetExt = "xls" Then
i = i + 1
Cells(i, 1) = FN.Name
End If
Next
MsgBox "总计所有类型文件" & j & "个!" & vbCrLf & "总计Excel文件" & i & "个!"
Else
MsgBox "没有选择文件夹!"
End If
End Sub

回答2:

Option Explicit
Sub main()
Dim wb As Workbook
Set wb = Workbooks.Open("d:\1.xlsm")
Application.Run "1.xlsm!tt"
wb.Close
Set wb = Nothing
End Sub
这是个示例,我把两工作簿都在D盘了根目录运行的,你可以改代码,也可以该路径,详见附件

回答3:

店铺的数据分析师,日常最多的工作还是处理数据,VBA是必须,Python等你需要用的时候再学。一点基础也没有的话,Python学了你也学不会。而且VBA教程很多,建议找个教你练手的老师跟着学,随时问。别看那个80集,你会很快放弃。花200元买个教程都比这个强。至于哪个老师我就不讲了,见仁见智。

电商数据源都基本都不太标准,导入MySQL前都需要先把没用的表头去掉。既然是在Excel里面处理,VBA比Python上手快,等你VBA上手以后,会自然而然的学C#和SQLserver,这俩比Python + MySQL上手快。

MySQL在商业数据分析方面应用的少,光各种英文报错就够你喝一壶的。VBA连接MySQL那叫一个复杂,相反连接SQLserver就很爽。

在处理关键词的时候,MySQL要对关键字段建立索引,text类型最好是用全文索引,就得切换引擎为MyISAM,不建立索引的效率差距可不是一星半点;SQLserver建立索引那就简单了。

不过,我已经习惯了在PowerShell里面敲MySQL命令行,猛地切换SQLserver还不习惯。光一个Navicat前前后后装了十几次,半路改行的数据分析师就是这么苦逼。