Using: Microsoft Visual Studio Community 2015, Version 14.0.24720.00 Update 1, with Microsoft .NET Framework Version 4.6.01055

Language: Visual Basic 2015
Target: Windows 7 application

Objective: Open Excel Worksheet from shared Box.com account, and get all of the data on the sheet (used range) and save into application. Populate ComboBoxes with columns from the excel data, filtering out duplicate data points from the dropdown lists. Auto complete for each ComboBox further filtering the list when user inputs text into the ComboBox. Selection in any ComboBox further filtering the list items in all other ComboBoxes on the form. Save button writes selected (or typed in the case of new data) from ComboBoxes to the first unused row of the Excel Worksheet (the same worksheet from above).

Completed: My code is currently opening the Worksheet and bringing the data into the application. I am bringing the Excel data into a 2-dimensional array. I have created event handlers and autocomplete for the ComboBoxes so they are all populating from the columns (from the array data copied from the Worksheet). My current code also writes data back to the Excel Worksheet directly from the values in the ComboBoxes.

The struggle I am having is with manipulating the Array Data after extracting it from the Excel Worksheet. I am unable to redimension and preserve a new array to collect each row of array data that matched a ComboBoxes selection.

The excel data is related to quote numbers. a Short example is:
a1: Quote Number, b1: Date/Time Stamp (when last saved), c1: Client, d1, Item 1 Cost... 73 more data points.

Each data point is populated into the comboboxes, and duplicates are filtered out. The user needs to be able to further filter the comboboxes by completing a selection in any of the comboboxes on the form. So if the user selects a client, then only the quote numbers in the same row (from the excel worksheet) would populate in the comboboxes. If the user then selects an Item from the Items combobox, the quote numbers would filter further (rebuild the list of items in the combobox). The end result is that the user would only need to know a couple data points to filter out all of the comboboxes to resolve at the only possible option. I would then like to turn all of the comboboxes background color a light shade of green to acknowledge to the user that there are no further options, and populate all of the selections of all remaining comboboxes with the only options remaining.

I do not know a lot about working with 2-dimensional dictionaries or lists(of lists). I have tried, but failed since almost all of the searches I have dont work explicitly with 1 dimensional data or dictionaries of dictionaries (1 dimensional populated by 1 dimensional). The problem I run into is how to get the excel data into that where I can then still work with the "Rows" and "Columns". In a 2-diminsional array its just a loop Array(i, 1).