Скажите, пожалуйста, почему в этой строке происходит ошибка "Type mismatch":
Dim L As Single
L = CSng(TextBox3.Text)
Что у вас находится в TextBox3 в момент ошибки?
В данном случае ошибка 'Type mismatch' означает, что те данные, которые есть в TextBox3, не могут быть числом.
Предположу, что вы пишите дробное число с точкой. Нужно писать дробное число с запятой.
Да, вы оказались правы. Спасибо.