在VBA中,怎样打开或者调用另一个EXCEL文件
3个回答
2017-07-10
温州瓯越培训学校
温州市瓯越职业培训学校是一家经温州市民政局批准成立的专门从事培训教育的正规机构,学校自1992年开创教育培训以来不断发展壮大,现开设电脑培训、会计培训、英语培训、手机维修培训等多个培训体系.
向TA提问
关注
展开全部
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
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
展开全部
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盘了根目录运行的,你可以改代码,也可以该路径,详见附件
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盘了根目录运行的,你可以改代码,也可以该路径,详见附件
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
店铺的数据分析师,日常最多的工作还是处理数据,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前前后后装了十几次,半路改行的数据分析师就是这么苦逼。
电商数据源都基本都不太标准,导入MySQL前都需要先把没用的表头去掉。既然是在Excel里面处理,VBA比Python上手快,等你VBA上手以后,会自然而然的学C#和SQLserver,这俩比Python + MySQL上手快。
MySQL在商业数据分析方面应用的少,光各种英文报错就够你喝一壶的。VBA连接MySQL那叫一个复杂,相反连接SQLserver就很爽。
在处理关键词的时候,MySQL要对关键字段建立索引,text类型最好是用全文索引,就得切换引擎为MyISAM,不建立索引的效率差距可不是一星半点;SQLserver建立索引那就简单了。
不过,我已经习惯了在PowerShell里面敲MySQL命令行,猛地切换SQLserver还不习惯。光一个Navicat前前后后装了十几次,半路改行的数据分析师就是这么苦逼。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询