使用VBA和Excel确定错误的输入文件
对于确定用户选择的Excel文件是否不正确,有什么建议吗?我让用户选择要分析的excel文件,如果该文件的格式不正确,我将拒绝处理。在excel文件中放置隐藏的版本字段或其他字符串,如果字符串不匹配,则中断执行。当然,假设您可以控制创建文件的文件或模板。如果要分析的文件有标题,请检查部分文本使用VBA和Excel确定错误的输入文件,excel,vba,Excel,Vba,对于确定用户选择的Excel文件是否不正确,有什么建议吗?我让用户选择要分析的excel文件,如果该文件的格式不正确,我将拒绝处理。在excel文件中放置隐藏的版本字段或其他字符串,如果字符串不匹配,则中断执行。当然,假设您可以控制创建文件的文件或模板。如果要分析的文件有标题,请检查部分文本 Sub ImportXYZ() ' ... Code to import If ActiveWorkbook.Worksheets("Sheet1").Range("A1") <> "XY
Sub ImportXYZ()
' ... Code to import
If ActiveWorkbook.Worksheets("Sheet1").Range("A1") <> "XYZ" Then
MsgBox CStr(ActiveWorkbook.Name) & vbCr & _
"The file you selected does not contain XYZ data!" & vbCr & "Please try again."
' ... Code to reset
Call ImportXYZ
End If
' ... Code to process import
End Sub
除了在工作表中放置标识正确文件类型的标记外,还可以使用工作簿属性。创建自定义属性MyExcelFilesClassification,并为该属性指定类似MyTypeOfWorkbook的值。代码打开文件时,请检查属性是否具有正确的值,例如:
Office.DocumentProperties customProperties = workbook.CustomDocumentProperties as Office.DocumentProperties;
foreach (Office.DocumentProperty property in customProperties)
{
if (property.Name == "MyExcelFilesClassification")
{
string modelType = property.Value as string;
if (modelType == "MyTypeOfWorkbook")
{
// do something
}
}
}
这是C代码,但VBA或VB语法应该没有太大区别。谢谢!我认为这是最好的方法,因为我无法控制初始文件