Jak można osiągnąć:Naśladując "IN" operator
if X in (1,2,3) then
zamiast:
if x=1 or x=2 or x=3 then
Innymi słowy, w jaki sposób można najlepiej naśladować operatora IN
w VBA dla Excela?
Jak można osiągnąć:Naśladując "IN" operator
if X in (1,2,3) then
zamiast:
if x=1 or x=2 or x=3 then
Innymi słowy, w jaki sposób można najlepiej naśladować operatora IN
w VBA dla Excela?
Nie sądzę, że istnieje bardzo eleganckie rozwiązanie.
jednak można spróbować:
If Not IsError(Application.Match(x, Array("Me", "You", "Dog", "Boo"), False)) Then
lub można napisać własną funkcję:
Function ISIN(x, StringSetElementsAsArray)
ISIN = InStr(1, Join(StringSetElementsAsArray, Chr(0)), _
x, vbTextCompare) > 0
End Function
Sub testIt()
Dim x As String
x = "Dog"
MsgBox ISIN(x, Array("Me", "You", "Dog", "Boo"))
End Sub
próbowałaś
eval("3 in(1,2,3,4,5)")
To powinno zadziałać. –
Otrzymuję "sub lub funkcja nie zdefiniowana" - nie wiem, czy to dlatego, że jestem w VBA (nie VB)? edytowałem pytanie ... –
Jest to funkcja Access VBA. Niestety nie widziałem, że wspomniałeś o programie Excel VBA. – THEn
Tam nikt, że jestem świadom .
Zwykle używam InArray() Funkcja warzone jak ten w http://www.freevbcode.com/ShowCode.asp?ID=1675
Można również zrobić wersję iteracji tablicy zamiast złączenie, jeżeli jest to bardziej odpowiednie dla danego typu danych.
Można również spróbować oświadczenie zamiast IF
Select Case X
Case 1 To 3
' Code to do something
Case 4, 5, 6
' Code to do something
Case 7
' Code to do something
Case Else
' More code or do nothing
End Select
Można również skorzystać z funkcji filtrowania jak opisano here
pisałem go teraz CASE ...
Public Function IsInArray(FindValue As Variant, ParamArray arrEmailAttachment()) As Boolean
Dim element As Variant
For Each element In arrEmailAttachment
If element = FindValue Then
IsInArray = True
Exit Function
End If
Next element
IsInArray = False
End Function
Nie można po prostu uniknąć funkcji i użyć czegoś takiego: 'InStr (1, "MeYouDogBoo", x) '? – redOctober13
@ redOktober13 może to działać, jeśli oddzielisz elementy listy ogranicznikiem, którego nie można znaleźć w x. W przeciwnym razie YouDo uruchomi InStr. – mrdaddychops