我正在处理 excel 中的代码,该代码使用唯一编号和关联日期来查看工作表中是否已经存在相同的记录。这是我的代码:
第一个代码的一部分...
Else
'If all the data has been entered, go to New_Record
Check_Record ID:=Sheets("Information").Range("A1").Value, vDate:=Sheets("Information").Range("A2").Value
End If
End Sub
第一个代码之后的第二个代码...
Function Record(ID As String, vDate As String)
Dim Current_ID_List As Range
Dim vCaseWasFound, vDateWasFound, vLastDataRow As Range
Dim DestinationRow As Integer
Dim Go_ahead_msg As String
Set ID_List = Sheets("Records").Range("A:A")
Set Date_List = Sheets("Records").Range("D:D")
'-- determine whether record exists
Set vCaseWasFound = ID_List.Find(What:=ID, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
Set vDateWasFound = Date_List.Find(What:=vDate, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
Set vLastDataRow = Sheets("RawData").Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows)
If Not vCaseWasFound Is Nothing And Not vDateWasFound Is Nothing Then
Go_ahead_msg = "The record already exists."
Else
Go_ahead_msg = "This is a new record."
End If
If MsgBox(Go_ahead_msg, vbQuestion + vbYesNo) = vbYes Then
New_Record
Sheets("Sheet1").Activate
Else
With Sheets("Records")
.Activate
.Range("A1").Select
End With
End If
End Function
已解决:我遇到并已解决的问题是,如果 Excel 文件中有 ID 为 1234567 且日期为 2013 年 10 月 10 日的记录,并且我正在尝试输入另一条 ID 为 1234 且日期为 2013 年 10 月 10 日的记录,该代码仍然给出“记录已经存在”的消息。它没有查看整个 ID 值。即使现有 ID 的部分与新 ID 匹配,代码也不会将其识别为新 ID。
新:现在我遇到了日期问题。如果我有相同的 ID 和相同的日期(例如 2012 年 12 月 12 日),那么代码会将其识别为相同的记录,并会给出一条记录已存在的消息。但是,如果日期的格式为 1/1/2013 或 4/15/2012 或 4/1/2013,则代码不会将其识别为同一日期。
我希望我的问题是有道理的。如果我能澄清,请告诉我。
非常感谢您的帮助。