Transpose Excel spreadsheet to Qlikview readable format I am new to VBA coding and I am trying to convert the following Excel file:  
Table1

into a format that is readable by Qlikview. Hence, I want table1 to become table2: 
Table2

I have color coded several examples above. For example, for everything in red, I want 'Canada Region' and 'NonPar Non-adjustable' copied for each occurrence of Cash. The same is done with the pink column and green column. If possible, I would like to do this regardless of the number of columns and for 100 years, however, if that is not possible than hardcoding the number of columns also works.

One solution would be to use an Excel transformation step within your QlikView load script.
I created an Excel file like yours above, then applied the following steps
CrossTable(Year, Data, 2)
LOAD F1, 
     F2, 
     [Year 1], 
     [Year 2], 
     [Year 3], 
     [Year 4]
FROM
[Your full file path here...xlsx]
(ooxml, embedded labels, table is Sheet1, filters(
Transpose()
));

The Transpose step gives you just the year as the column header, and two row headers that you can deal with using the CrossTable step. 
You can access this import step from the 'Table Files...' button on the QlikView script editor. 
See also
Transpose Excel in script load 
If you're set on VBA, that can be managed too... 
HTH, Bob