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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VBA中,怎样打开或者调用另一个EXCEL文件相关的知识,希望对你有一定的参考价值。

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
参考技术A 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盘了根目录运行的,你可以改代码,也可以该路径,详见附件本回答被提问者采纳
参考技术B 店铺的数据分析师,日常最多的工作还是处理数据,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前前后后装了十几次,半路改行的数据分析师就是这么苦逼。

Excel 怎样在VBA中打开带有密码的excel文件

参考技术A 如果Excel文件的打开密码忘记了,且密码是6位数以内的数字,可用以下步骤解开(关掉所有程序,为了速度):
新开一Excel,同时按Alt和F11,进入VBA界面,点菜单上的插入,模块,在新出来的窗口粘贴一下代码:
Sub crack()
Dim i As Long
Dim FileName As String
i = 0
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xlsx),*.xls;*.xlsx", , "VBA破解")
FileName = Right(FileName, Len(FileName) - InStrRev(FileName, "\"))
Application.ScreenUpdating = False
line2: On Error GoTo line1
Workbooks.Open FileName, , True, , i
MsgBox "Password is " & i
Exit Sub
line1: i = i + 1
Resume line2
Application.ScreenUpdating = True
End Sub

然后在此界面直接按F5运行此宏,选择文件,等啊等(看密码长度了)本回答被提问者采纳
参考技术B 发红包可帮解密。

以上是关于在VBA中,怎样打开或者调用另一个EXCEL文件的主要内容,如果未能解决你的问题,请参考以下文章

通过 Access 2013 VBA 编辑后无法打开 Excel 2013 文件

excel或者vba,怎样将工作簿内所有橙色单元格公式转换为数值?

Excel用vba按先后顺序打开一个文件夹中的N个excel工作簿,运行一段宏程序后

vba怎样把一个单元格中的值赋给另一个单元格

求问:excel VBA对一个已经打开的网页进行操作

用vba做excel两个表的比对