Retour des valeurs RVB de Gamme.L'intérieur.Couleur (ou toute autre Couleur à la Propriété)
J'ai essayé de mettre à changer la couleur de fond d'une cellule pour le noir, et j'ai trouvé que la Plage.L'intérieur.La couleur de la méthode renvoie une Longue qui est apparemment arbitraire. En regardant la documentation MSDN, il n'y a presque rien de ce que ce nombre représente. Est-il un moyen de retourner la valeur RVB de cette longue. J'ai effectivement besoin de l'inverse de la RVB(rouge, vert, bleu) de la fonction.
OriginalL'auteur CodeJockey | 2014-06-10
Vous devez vous connecter pour publier un commentaire.
Que "arbitraire" le nombre est une combinaison mathématique des valeurs RVB (B*256^2 + G*256 + R) et d'une conversion de la valeur de couleur hexadécimale d'un nombre décimal (base 16 en base 10), selon la façon dont vous voulez regarder. Juste des bases différentes. Ci-dessous est la méthode que j'utilise dans le XLAM addin fichier que j'ai écrit pour Excel. Cette méthode a venir dans maniable à de nombreuses reprises. J'ai inclus la documentation dans mon fichier addin.
R*256^2 + G*256 + B
ce ne serait pas VBA, où les choses les plus simples doivent être excentrique. En fait c'est l'inverse:B*256^2 + G*256 + R
Oui bien sûr que c'est une partie d'une interminable tas de VBA bizarreries. J'ai tapé trop vite pour mon propre bien. Merci pour l'attraper!! Fixe. Un peu surpris il a fallu cette longue pour quelqu'un de point. Surpris et j'ai tout fait foiré parce que je savais que caprice quand j'ai écrit cette méthode et cela se voit dans la façon dont j'ai écrit le R, G, B.
Ouais. J'ai remarqué seulement parce que je pensais que ce serait plus rapide de faire le calcul à la main au lieu de copier-coller votre (bon) et le code de course:)
OriginalL'auteur Mark Balhoff
Réponse Courte:
Il n'est pas construit dans la fonctionnalité de cette. Vous devez écrire votre propre fonction.
Réponse Longue:
Long qui est retourné de l'Intérieur.La couleur de la propriété est un décimal conversion de la typique hexadécimal les nombres que nous sommes habitués à voir pour les couleurs en html par exemple "66FF66". En outre, la constante de xlNone (-4142) peuvent être transmises à l'ensemble de la cellule ne pas avoir de couleur en arrière-plan, toutefois ces cellules sont marquées blanc
RGB(255, 255, 255)
de laGet
de la propriété. Sachant cela, nous pouvons écrire une fonction qui retourne une ou toutes les valeurs RVB.Heureusement, un gentil Monsieur Allan Wyatt a fait ici!
La détermination de la Valeur RVB de la Couleur
OriginalL'auteur CodeJockey
bon de voir que M. Wyatt utilise la méthode rapide de couleur RVB
qui est plusieurs fois plus rapide que ceux utilisant hex str avec la gauche milieu droite
que certains recommandent
OriginalL'auteur Harry S
L'autre réponse n'a pas fonctionné pour moi. J'ai constaté que:
et cela a fonctionné correctement.
RGB(50,100,200) = RGB(50,100,200) Mod 256
et rouge valeur deRGB(50,100,200) = RGB(50,100,200) And 255
OriginalL'auteur kraft hannes
Marque Balhoffs script VBA fonctionne très bien. Tous les crédits vont à lui.
Dans le cas où le youd aiment à obtenir les codes de la couleur/index des personnes les cellules mises en forme ainsi, le code peut être modifié comme ceci:
Select Case formatType
àSelect Case formatType Mod 4
permet la suppression de cas 4 à 7 (inutile duplication de code). Je voudrais aussi probablement choisir de convertir le dernierCase
dans le gros bloc de commutateurs à unCase Else
à défaut sur une mauvaise saisie de l'utilisateur et de convertir le plus petit bloc de commutateurs àIf formatType < 4 Then ... Else ... End If
mais ces deux derniers sont plus de choix personnels.OriginalL'auteur dumpguy
Convient de noter, pour les valeurs hexadécimales, si vous êtes à l'exportation vers HTML, vous allez obtenir des caprices aussi.
Idéalement, vous devez créer la chaîne hexadécimale de l'individu couleurs, plutôt que de retourner un hex de la ColorVal nombre.
La raison étant que vous pouvez obtenir des invalides nombres hexadécimaux si la cellule est un " pur " de la couleur comme le vert/bleu
ROUGE - RGB(255,0,0) renvoie " FF " - il doit retourner 'FF0000'
BLEU - RGB(0,0,255) renvoie 'FF00000" - il doit retourner '0000FF'
entrez la description de l'image ici
Si vous avez utilisé pour créer du HTML/CSS de couleur de sortie, vous obtiendrez ROUGE pour toutes les cellules bleues.
J'ai modifié le script pour assembler chacun des deux caractères hex 'chunk' basé sur les valeurs RGB, avec une UDF qui vient de plaquettes avec un 0 où la production d'un seul caractère est renvoyé ( j'espère que si vous lisez ceci, vous pouvez faire quelque chose de similaire )
--Edit : oublié d'inclure le code de l'UDF...
OriginalL'auteur Johnny MMXVII