如果文件扩展名是.xls,则MsgBox
我写了一个VBA脚本,为具有大量数据(从45,000行到500,000行)的客户端执行不同的sorting/匹配/过滤function。
问题是,如果用户将这些数据导出或保存为.xls
文件,则只会保存65,536行,这可能会不足。 在脚本的执行过程中,如果用户“错误地”将数据导出为.xls
文件,则希望MsgBox
出现,否则继续。
我试过下面的代码,看看我是否可以正确地获得文件扩展名,但是我的MsgBox
没有返回任何东西:
Sub ext() Dim extFind As String Dim sFile As String Dim FilePath As String FilePath = Application.ActiveWorkbook.Path sFile = Dir(FilePath & Filename & "*") extFind = Right$(sFile, Len(sFile) - InStrRev(sFile, ".")) MsgBox extFind End Sub
任何build议将不胜感激。
FileSystemObject
库有一个GetExtensionName()
函数,使生活更轻松:
With CreateObject("Scripting.FileSystemObject") strExt = .GetExtensionName(ActiveWorkbook.Path) End With If StrComp(strExt, "xls", vbTextCompare) = 0 Then ' Display error End If
或者,您可以检查工作簿中的行数:
If ActiveSheet.Rows.Count = 65536 Then ' Display error End If
您错过了FilePath
和Filename
之间的斜线:
sFile = Dir(FilePath & "\" & Filename & "*")
顺便说一句,你在哪里分配值variablesFilename
? 如果您打算使用活动工作簿的名称,则应使用ActiveWorkbook.Name
。