Variables usually have a certain data type associated with them, like boolean or numerical or string. A variant data type can be any data type. There is a function that converts variant data to a specific data type or vice versa. Variants are used when passing data to another module where the data type is unknown or can be anything. An example is reading fields in a database. Table 1 may contian a string and a number, whereas Table 2 may contain a number and a date. variants are used here since the data type differs from one table to another. Variants take up more memory since it must accomodate for the largest data type possible. When using variants, at some point you must know what to convert it to, so you must know that Table 1 column 1 has a string an
d column 2 has a number, and so on, or you would not be able to act upon that data (like adding numbers or concatenating strings).