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? P>
code qui fonctionne pour une valeur p> je veux quelque chose comme p>
5 Réponses :
On dirait que vous devez utiliser des opérateurs logiques binaires, tels que et-Opérateur P> ou opérateur < / p> Dans votre cas, le et code> ou ou code>, comme expliqué ici: ou code> -Opérator vous donne la solution suivante: p>
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
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
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 B> un nombre positif (par exemple, la colonne sélectionnée doit être protégée) Vous sélectionnez des cellules (10,10) code>? Et si ce n'est pas protégé, vous faites toutes ces lignes que vous avez eu plus tôt. @Alistaircabral
Vous pouvez utiliser un dictionnaire code> et sa méthode intégrée existe code>
Est-ce que cela répond à votre question? Imitant l'opérateur "dans"