Czwartek, 05, styczeń 2023
  1 Odpowiedzi
  3.6 tys. Wizyt
0
Głosów
odpiąć
Z góry dziękuję za wszelką pomoc w tej sprawie, którą możesz zaoferować.

Za pomocą tej strony stworzyłem następującą funkcję;

Funkcja ColorFunction(rColor jako zakres, rRange jako zakres, opcjonalnie SUMA jako wartość logiczna)
Przyciemnij rCell jako zakres
Dim lCol tak długo
Przyćmiony vWynik
lKolor = rKolor.Wnętrze.IndeksKolorów
Jeśli SUMA = Prawda, to
Dla każdej komórki rCell w rRange
Jeśli rCell.Interior.ColorIndex = lColor To
vResult = WorksheetFunction.SUM(rCell, vResult)
End If
Następna rCell
Więcej
Dla każdej komórki rCell w rRange
Jeśli rCell.Interior.ColorIndex = lColor To
vWynik = 1 + vWynik
End If
Następna rCell
End If
ColorFunction = vResult
End Function


W każdej komórce docelowej, którą chcę, suma wszystkich komórek w tym wierszu, które zawierają kolor określonej komórki;
=funkcjakoloru(AR4;H5:AP5;PRAWDA)

Jak sprawić, by docelowa sprzedaż była aktualizowana, gdy jakakolwiek inna komórka w wierszu (H5:AP5) zmieni kolor?
1 lat temu
·
#3338
0
Głosów
odpiąć
Witam,

Możesz dodać kod: Zastosowanie. Obliczenia = xlAutomatyczne do Twojej funkcji:

Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)
Dim rCell As Range
Dim lCol As Long
Dim vResult
Application.Calculation = xlAutomatic
lCol = rColor.Interior.ColorIndex
If SUM = True Then
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell, vResult)
End If
Next rCell
Else
For Each rCell In rRange
If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
End If
Next rCell
End If
ColorFunction = vResult
End Function


Proszę spróbować.

Amanda
  • Strony:
  • 1
Nie ma jeszcze odpowiedzi na ten post.