0
votes

Comment faire si "=" Plusieurs valeurs?

Je souhaite qu'un message affiche si un utilisateur tente de modifier une cellule en fonction de son titre de colonne. Je pourrais simplement protéger les cellules, mais cela serait utile pour les connaissances futures de toute façon.

plutôt que multiple si des déclarations que je veux quelque chose de similaire à celui de l'endroit où dans () qui est dans SQL. Y a-t-il un moyen de ne pas faire ou n'utiliserais-tu pas simplement un autre?

code qui fonctionne pour une valeur xxx

je veux quelque chose comme xxx


1 commentaires

Est-ce que cela répond à votre question? Imitant l'opérateur "dans"


5 Réponses :


2
votes

On dirait que vous devez utiliser des opérateurs logiques binaires, tels que et ou ou , comme expliqué ici:

et-Opérateur

ou opérateur < / p>

Dans votre cas, le ou -Opérator vous donne la solution suivante: xxx


0 commentaires

1
votes

Merci beaucoup. J'ai essayé d'utiliser la ou la fonction, mais cela n'a pas fonctionné (sauf si j'avais besoin des supports autour des IFS? Veuillez noter que j'ai trouvé une solution toutefois et que j'étais plus ce que je cherchais comme je pouvais définir une liste:

Dim ColumnTitle
ColumnTitle = Cells(1, ThisColumn).Value  
Select Case ColumnTitle    
Case "# Workers", "Assumption numbers used for costings"   ' List of Column Titles.

    Cells(ThisRow, ThisColumn).Select

Case Else    ' Other values.
    Application.EnableEvents = False
    Application.Undo
    Application.EnableEvents = True
    MsgBox "Protected Columns."

End Select


0 commentaires

1
votes

Vous pouvez utiliser Instr, s'il vous plaît lire: Ce

ex: xxx


0 commentaires

0
votes

Vous pouvez utiliser deux méthodes d'application code> code> appelées .match code> et .Count code>. Nous pouvons dire à la correspondance code> code> pour vérifier un tableau 1D contre une valeur. Il retournera une valeur numérique si elle est trouvée et une erreur sinon. Ensuite, .Count code> ignorera ces erreurs et retournera le nombre total de valeurs trouvées. Donc, la technique est par exemple:

Dim ThisColumn As Long: ThisColumn = Target.Column
Dim arr As Variant: arr = Array("# workers", "# of people")

With Application
    If .Count(.Match(arr, Cells(1, ThisColumn), 0)) > 0 Then
        .EnableEvents = False
        .Undo
        .EnableEvents = True
        MsgBox "Protected Columns"
        Exit Sub
    Else
        'Do something else if need be...
    End If
End With


4 commentaires

Je pense que c'est le plus proche mais quand j'essaie la situation ci-dessous, rien n'arrive. Avec application si .Count (.match (Arr, cellules (1, CeciColumn), 0))> 0 puis cellules (10, 10). Sélectionnez .enablevents = Faux .undo .nundoEvents = Vraie msgbox "colonnes protégées" Fin si fin de


D'où vient les cellules (10,10)? Êtes-vous sûr que deserfents sont définis sur true à votre point d'exécution? @Alistaircabral


Salut, j'essayais juste d'avoir une action travaillant puis de le faire avec un autre


Vous comprenez que vous avez maintenant fait de telle sorte que lorsque est un nombre positif (par exemple, la colonne sélectionnée doit être protégée) Vous sélectionnez des cellules (10,10) ? Et si ce n'est pas protégé, vous faites toutes ces lignes que vous avez eu plus tôt. @Alistaircabral



0
votes

Vous pouvez utiliser un dictionnaire et sa méthode intégrée existe xxx


0 commentaires