В части кода ниже у меня есть функция под названием FolderPick, которая возвращает путь к файлу выбранной папки через диалоговое окно. Затем я удаляю путь к папке, чтобы найти имя выбранной папки. Это все работает, как задумано.
Что я хотел бы сделать, так это убедиться, что имя выбранной папки является одним из утвержденных имен. Сначала я думал об использовании серии операторов IF, а затем подумал об использовании оператора case. Поэтому я почти уверен, что синтаксис моих CASE неверен и что вы можете иметь только одно значение для каждого случая.
Является ли мой единственный выбор здесь оператором IF с большим количеством операций ИЛИ?
Также есть ли формат для универсального CASE? т. е. ни один из предыдущих случаев не совпал, поэтому сделайте это?
Pickafolder:
FolderPath = FolderPick
Foldername = Left(FolderPath, Len(FolderPath) - 1)
Foldername = RIght(Foldername, Len(Foldername) - InStrRev(Foldername, "\"))
Select Case Foldername
Case Foldername = "OPSS" Or Foldername = "SSP" Or Foldername = "OPSD" Or Foldername = "MTOD" Or Foldername = "SSD"
'do something
Case Foldername = "West" Or Foldername = "Eastern" Or Foldername = "Northeastern" Or Foldername = "Northwestern" Or Foldername = "Head Office"
'inser "NSP\ before foldername
Case Foldername = "NSP"
'msgbox "Pick the NSP sub folder"
GoTo Pickafolder
Case Foldername <> any other case
'msgbox "Inappropriate directory to upload from. Please select one of the CPS download directories"
GoTo Pickafolder
End Select
потому что вы наверное когда-то случайно где-то определили что-то вроде Dim RIght и VBA как-то помнит. Найдите его, и если вы его не найдете, просто напишите где-нибудь вверху вашего модуля Dim Right, тогда он будет изменен. Вы можете удалить это утверждение после того, как оно изменится на нижний регистр i.
Пожалуйста, не откатывайте действительные изменения. Если тег помечен как «Ожидает удаления», не используйте его. Вы просто создаете работу для других, когда тег удален.


Попробуйте это, вы можете использовать "," вместо ИЛИ
Select Case FolderName
Case "OPSS", "SSP", "Something", "MTOD", "SSD"
'do something
Case "West", "Eastern", "Northeastern", "Northwestern", "Head Office"
'inser "NSP\ before foldername
Case "NSP"
'msgbox "Pick the NSP sub folder"
'GoTo Pickafolder
Case Else
'msgbox "Inappropriate directory to upload from. Please select one of the CPS download directories"
'GoTo Pickafolder
End Select
Я не понимал, что был ДРУГОЙ СЛУЧАЙ. Это замечательно! Я попробую это на мгновение
Почему I in Right пишется с заглавной буквы моим редактором VBA?