VBA验证文件的正确(更新)版本的使用

时间:2018-06-26 15:42:43

标签: excel vba excel-vba

向卖方发送了一个excel工作簿,他们将数据添加到该工作簿并发送回去。最近,我们对此文件进行了一些更改(某些数据验证字段),以禁止用户添加错误的数据。但是...我发现供应商只是在使用旧文件,因为它不包含这些烦人的验证功能。 我正在尝试向上传宏中添加一个函数,该函数基本上检查文件是否为当前版本(带有验证的版本)。

我考虑过将一个隐藏的工作表添加到新文件中,并进行简单的计数以检查此工作表是否存在。像下面一样

For i = 1 To Worksheets.Count
    If Worksheets(i).Name = "Validation" Then
    exists = True
    End If
Next i

If Not exists Then
exit sub
End If

另一个选择可能是在代码中添加某种类型的签名,并在上传之前检查该签名的存在。我愿意就如何解决这个问题提出新的想法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我最好把它写下来作为答案。

如果您有数据验证,则Access中应该有一个由这些数据组成的关系表,并与主表的外键相连。在Excel中将数据插入Access时,请使用子查询,您可以在其中根据Access中的验证表来验证数据。如果发生错误,请在您的代码中进行处理,以便您知道供应商是否正在使用旧的工作簿。

一个例子:

"INSERT INTO main_table (validation_column, column2, ...) 
VALUES ((SELECT validation_id FROM validation_table WHERE validation_name = " & Cells(i,j).Value & "), value2, ...);"