У меня есть сценарий excel vba (ниже), что у меня возникают проблемы с отображением «match». Я установил свой файл excel со следующей информацией. столбец A5 - A10 имеет даты в формате 3/1/2015, 3/2/2015 и т. д. (поэтому A5 = 3/1/2015, A6 = 3/2/2015 и т. д.)excel vba script не запускает предполагаемый msgbox?
My рабочий лист имеет 7 вкладок, первый (с кодом на нем) является листом по умолчанию1. с 2 по 7-ю вкладку обозначены как «1» для второй вкладки «2», «3» и т. д. до «7». На данный момент я просто тестировал A5 для сопоставления и отображения чего-либо, если он соответствует вкладке 2, но не работает. Прокомментированные (вне) msgboxes показывают, что значения должны совпадать, но когда я пытаюсь установить if (они равны), no bueno. это упрощенная версия, поэтому ответ вроде «почему бы вам просто не установить день, равный тому, который вы хотите» не будет работать. Благодаря!
Sub main()
'MsgBox Day(Worksheets("sheet1").Range("a5").Value)
'MsgBox Worksheets(2).Name
If Day(Worksheets("sheet1").Range("a5").Value) = Worksheets(2).Name Then
MsgBox "match"
End If
End Sub
спасибо! вот что я думал, но я не был уверен. На самом деле, вчера я попытался преобразовать оба в int, но я думаю, что либо он не работал, либо я не сделал это правильно (или и то, и другое). Я использую «2» в листах (2) в счетчике. могу ли я сделать что-то вроде , если день (рабочие листы («лист1»). диапазон («a5»). значение)) = Int (рабочие листы (2) .name вместо? –
@JohnDoe Да, вы также можете использовать версия, но моя версия более универсальна. Вы можете преобразовать любое целое число в строку, и ваш код будет вызывать ошибку «Тип несоответствия», если имя рабочего листа не может быть преобразовано в 'integer' (например,' "sheet1" ') – BrakNicku
работает для меня! Большое спасибо, я застрял на этом несколько дней –