Při použití jazyka VBA v Excelu může být podmíněné formátování nesprávně nastaveno.

Příznaky

Zvažte následující příklad.

  • Vyberte buňku v listu v aplikaci Microsoft Excel 2000 nebo v novější verzi aplikace Excel.
  • Pomocí jazyka Microsoft Visual Basic for Applications (VBA) můžete vytvořit program podmíněného formátování založeného na vzorcích.
  • V programu podmíněného formátování jazyka VBA se používají relativní odkazy na buňky.
  • Podmíněné formátování použijete na jinou než vybranou buňku.

Při použití podmíněného formátování si všimnete, že podmíněné formátování není správně nastavené.

K tomuto problému dochází například při použití programu, který obsahuje kód jazyka VBA v listu aplikace Excel, který je podobný následujícímu kódu:

Sub Example()
ThisWorkbook.Worksheets(1).Range("A1").Select
With ThisWorkbook.Worksheets(1).Range("B1")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=A1=1"
.FormatConditions(1).Interior.ColorIndex = 46
End With
End Sub

Tento kód automaticky použije podmíněné formátování na buňku B1, když do buňky A1 zadáte "1". Když do buňky A1 zadáte "1", očekáváte, že se barva buňky B1 změní na červenou. Barva buňky se ale nezmění. Barva buňky B1 se změní na červenou pouze v případě, že do buňky B1 zadáte "1".

Kromě toho dialogové okno Podmíněné formátování zobrazí vzorec jako =B1=1 místo =A1=1.

Řešení

Pro vyřešení tohoto problému použijte některý z následujících postupů:

Metoda 1: Použití absolutních odkazů na buňky

Absolutní odkazy na buňky můžete použít k odkazování na buňku, která obsahuje vzorec, a ne odkazovat na relativní odkazy na buňky.

Můžete například upravit textovou položku Formula1:="=A1=1" v kódu jazyka VBA, který je popsaný v části Příznaky jako Vzorec1:="=$A$1=1", aby kód používal absolutní odkazy na buňky. Tato upravená verze kódu VBA je následující:

Sub Example()

ThisWorkbook.Worksheets(1).Range("A1").Select

With ThisWorkbook.Worksheets(1).Range("B1")
     .FormatConditions.Delete
     .FormatConditions.Add Type:=xlExpression, Formula1:="=$A$1=1"
     .FormatConditions(1).Interior.ColorIndex = 46
End With

End Sub

Metoda 2: Před použitím vzorce vyberte buňku, kterou chcete použít pro podmíněné formátování.

Pokud chcete použít podmíněné formátování na buňku, vyberte nejprve buňku, kterou chcete použít pro podmíněné formátování. Pak vyberte buňku, kterou chcete použít pro vzorec. Po výběru této buňky upravte vzorec tak, aby vyhovoval vašim požadavkům.

Chcete-li to provést, postupujte podle těchto kroků podle verze aplikace Excel, kterou používáte.

Microsoft Office Excel 2007

  1. Spusťte Excel a pak otevřete nový excelový list.
  2. V excelovém listu vyberte buňku B1.
  3. Klikněte na kartu Domů .
  4. Klikněte na Podmíněné formátování ve skupině Styly a potom klikněte na Nové pravidlo.
  5. V části Vybrat typ pravidlaklikněte na Použít vzorec a určete buňky, které se mají formátovat.
  6. Klikněte do pole Formátovat hodnoty, kde tento vzorec má hodnotu true . Pak vyberte buňku, kterou chcete použít pro podmíněné formátování.
  7. Upravte hodnotu v kroku 6 tak, aby byla =$A$1=1.
  8. Klikněte na Formát.
  9. V dialogovém okně Formát buněk klikněte na kartu Výplň .
  10. Klikněte na barvu "červená" a potom klikněte na OK.
  11. V dialogovém okně Nové pravidlo formátování klikněte na OK.
  12. Do buňky A1 zadejte 1 a stiskněte klávesu ENTER.
  13. Ověřte, že se barva buňky B1 změnila na červenou.
  14. Zavřete excelové listy.

Microsoft Office Excel 2003 a starší verze aplikace Excel

  1. Spusťte Excel a pak otevřete nový excelový list.
  2. V excelovém listu vyberte buňku B1.
  3. V nabídce Format (Formát) klikněte na Conditional Formatting (Podmíněné formátování).
  4. V části Podmínka 1 klikněte v seznamu na Vzorec je .
  5. Klikněte do pole pro zadávání dat. Pak vyberte buňku, kterou chcete použít pro podmíněné formátování.
  6. Upravte hodnotu v poli pro zadávání dat na =$A$1=1 a klikněte na OK.
  7. Klikněte na Formát.
  8. V dialogovém okně Formát buněk klikněte na kartu Vzorky .
  9. Vyberte barvu "červená" a klikněte na OK.
  10. V dialogovém okně Podmíněné formátování klikněte na OK.
  11. Do buňky A1 zadejte 1 a stiskněte klávesu ENTER.
  12. Ověřte, že se barva buňky B1 změnila na červenou.
  13. Zavřete excelové listy.