VBA & Macro Problems

How to Detect a False-True-False-True Pattern in Excel Data Using VBA

Natalie TaylorNatalie Taylor Oct 28, 2026 869 views

Question details

The user needs to identify a specific sequence of Boolean values (False-True-False-True) in an Excel dataset to track employee eligibility changes over time.

How to Detect a False-True-False-True Pattern in Excel
Product
Microsoft Excel
Device & OS
not provided
Scenario
Tracking employee work hours where 'True' means eligible and 'False' means ineligible, and detecting when an employee regains eligibility after a break.
Observed behavior
Standard counting functions only count total TRUE values, failing to detect the specific chronological sequence of changes between False and True.
Before you start

Ensure that your Excel workbook is saved as a Macro-Enabled Workbook (.xlsm) so that the custom VBA function can be saved and executed properly.

Solution 1Recommended

Create a Custom VBA Function to Count Pattern Changes

Use a User Defined Function (UDF) in VBA to count how many times the Boolean value toggles in a given range.

This VBA script iterates through a specified range and increments a counter every time the value changes from the previous cell. By evaluating the total number of changes, you can determine if the specific False-True-False-True sequence occurred.

1
Open the Visual Basic Editor

Right-click the worksheet tab containing your data at the bottom of the Excel window and select 'View Code' to open the Visual Basic Editor.

2
Insert a New Module

In the top menu of the VBA Editor, click 'Insert' and select 'Module' to create a new blank code module.

3
Paste the VBA Code

Paste the following code into the module window: Function CountPatternChange(ByVal Where As Range) As Long Dim LastPattern Dim R As Range For Each R In Where If (CountPatternChange = 0) Or R <> LastPattern Then CountPatternChange = CountPatternChange + 1 LastPattern = R End If Next End Function

4
Apply the Custom Formula

Close the VBA editor and return to your worksheet. Enter the formula `=CountPatternChange(A1:A28)` in a blank cell (adjusting the range `A1:A28` to match your actual data range) to get the number of pattern changes.

Create a Custom VBA Function to Count Pattern Changes
Interpreting the Result: A result of 4 indicates a False-True-False-True sequence (provided the very first value evaluated is False). Sequences resulting in 5 or more will also contain this pattern by default.
Advanced Data Analysis with WPS Spreadsheet

Use WPS Spreadsheet for Powerful VBA and Macro Support

WPS Office provides robust support for VBA macros, allowing you to seamlessly run custom functions like Boolean pattern detection. It is a lightweight, highly compatible solution for complex data analysis tasks.

  1. 1. Open your dataset: Launch WPS Spreadsheet and open your existing workbook containing the Boolean data.
  2. 2. Access the VBA Editor: Navigate to the 'Developer' tab on the ribbon and click the 'Visual Basic' icon to launch the editor.
  3. 3. Insert and run your code: Click 'Insert' > 'Module', paste the custom pattern-counting VBA code, and use the newly created function directly in your spreadsheet cells.
Fully compatible with Microsoft Excel .xlsm and .xlsx formatsBuilt-in VBA editor for creating and running custom macrosLightweight software with fast processing for large datasetsFamiliar user interface requiring no learning curve
microsoft office alternative - wps office

Frequently Asked Questions

Why can't I just use the COUNTIF function to find this pattern?

The COUNTIF function only counts the total number of cells meeting a specific criteria (like TRUE or FALSE) regardless of their order. It cannot detect the chronological sequence or changes between consecutive cells.

How do I check if the first value in my range is FALSE?

You can use a simple logical test in your worksheet, such as `=A1=FALSE` (assuming A1 is the first cell in your range), to confirm the starting value of your sequence before evaluating the pattern change count.

Will this VBA function work if there are blank cells in the range?

The provided VBA script evaluates every cell in the specified range. If there are blank cells, they may be interpreted as empty strings or zeros, which will trigger a pattern change and disrupt the Boolean count. It is best to ensure your data range contains contiguous True/False values.

How do I save my workbook after adding the VBA code?

To keep the VBA macro functional for future use, you must save your file as an Excel Macro-Enabled Workbook (*.xlsm). If you save it as a standard .xlsx file, the VBA code will be stripped from the document.