Если ваш заголовок определяет, сколько столбцов, то вы можете посчитать эту строку, чтобы получить число.Предположим, что ваш заголовок находится в строке 1.
Dim numCols as Long
numCols = Application.WorksheetFunction.Counta(sheet1.rows(1))
Вы также можете получить его от пользователя
numCols = Application.InputBox("Enter # of columns")
Если вы используете количество столбцов в нескольких процедурах, вы можетелибо передайте его в качестве аргумента, либо используйте переменную уровня модуля.Объявите переменную уровня модуля в верхней части модуля (в разделе объявлений, перед любыми операторами Sub или Function), например
Private numCols As Long
Вам все равно нужно будет установить ее в первой процедуре, которую вы запустите.Он не может быть константой, поскольку он изменяется в зависимости от ширины первой строки.
Вы можете сделать то же самое со ссылкой на лист.Я использовал кодовое имя листа (имя, которое пользователь не может видеть и не может изменить), но вы можете создать переменную для ссылки на лист
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("MySheet")
Обычно я использую кодовое имя, а непеременная, но это личное предпочтение.