Я использую Outlook VBA для l oop через разные ячейки в файле Excel, а затем оператор Select Case оценивает, равно ли каждое значение ячейки другому значению.
Приведенный ниже код должен выполняться для дайте мне семь окон сообщения: - первые два, являющиеся значением PreferredDate (получены из двух разных электронных таблиц), - третье чтение «Это сработало! 3», указывающее, что на A3 таблицы было найдено правильное значение, - остальные чтение «Значение не найдено», потому что для остальной части For L oop значения ячеек не соответствуют значению PreferredDate.
Однако, когда я запускаю его, я получаю первые два значения (" Значение равно X "," PreferredDate is X ") и пять окон сообщения" Значение не найдено ".
Я пробовал несколько вариантов обозначения TempValueDate как xlShtTemp.Range (" A "& i) .Value или xlShtTemp .Range ("A" & i) .Text, а также делать то же самое с PreferredDate, но это либо сломало его полностью, либо привело к получению пяти "Это сработало!" окна сообщений (что также неверно ... поскольку оно должно проходить по каждой ячейке и сообщать мне, соответствует ли это значение, а не сообщать, есть ли совпадение где-либо на листе).
Еще одна вещь, о которой я подумал, это то, что это может быть из-за того, что типы данных разные (возможно, один был строкой, а другой, например, другим). Они оба выглядят как «2/11/2020», но могут храниться по-разному. Чтобы решить эту проблему, я создал переменную TempValueDate и определил ее как объект, чтобы он соответствовал PreferredDate, определяемому как объект. Они оба взяты из значений листа Excel. Это не помогло, поэтому я думаю, что это не проблема.
Заранее благодарим за помощь!
Dim PreferredDate As Object
Set PreferredDate = xlSheet.Range("S" & rCount) ' This is taking the preferred appointment date from Spreadsheet 1
' Create temporary variable to represent each cell value
Dim TempValueDate As Object
' Open spreadsheet with available appointments from Spreadsheet 2
Dim xlAppTemp As Object
Dim xlBookTemp As Object
Dim xlShtTemp As Object
Dim sPathTemp As String
Dim objTemp As Object
'the path of the workbook under the windows user account
sPathTemp = enviro & "\\file_location.xlsx"
' // Excel
Set xlAppTemp = CreateObject("Excel.Application")
' // Workbook
Set xlBookTemp = xlAppTemp.Workbooks.Open(sPathTemp)
' // Sheet
Set xlShtTemp = xlBookTemp.Sheets("Sheet1")
' For loop to check if value exists in column
Dim i As Integer
MsgBox "PreferredDate is " & PreferredDate ' This demonstrates that PreferredDate is present in xlShtTemp at A3, and they look the same
MsgBox "Value is " & xlShtTemp.Range("A3")
For i = 1 To 5
Set TempValueDate = xlShtTemp.Range("A" & i)
Select Case PreferredDate
Case TempValueDate
MsgBox "It worked! " & i ' Just a test for now...it doesn't work though
Case Else
MsgBox "Value not found"
End Select
Next i```