2016-07-13 5 views
0

Я использую следующий код для создания именованных диапазонов для наборов данных с большим количеством столбцовДобавление проверки ошибок в VBA код, который генерирует именованные диапазоны

Sub Make_Named_Ranges() 

Range("A1").Select 
ActiveSheet.UsedRange 

Dim rCell2 As Range 
Dim wb2 As Workbook, ws2 As Worksheet 

ActiveSheet.UsedRange.Select 
Set ws2 = Selection.Parent 
Set wb2 = ws2.Parent 

For Each rCell2 In Selection.Cells 

If rCell2.Address = "$A$2" Then Exit For 

wb2.Names.Add rCell2.Value, "=" & ws2.Cells(2, rCell2.Column).Address 
& _":" & ws2.Cells(ActiveSheet.Range("A"& Rows.Count).End(xlUp).Row,rCell2.Column).Address 

Next rCell2 
End Sub 

То, что я хотел бы добавить, это форма проверка ошибок - иногда код встречает заголовок столбца в строке 1, который не является допустимым именем (например, M2 или SP500). Есть ли простой способ заставить его просто пропустить этот столбец и продолжать работу, когда он сталкивается с недопустимым именем?

ответ

0

Самый простой способ сделать это - изменить обработку ошибок. Включите этот код непосредственно перед строкой (ами) кода, который генерирует сообщение об ошибке:

On Error Resume Next 

Этот код указывает сценарий, чтобы игнорировать любые ошибки, создаваемые с этого момента. Если возникла ошибка, сообщение об ошибке не будет сгенерировано, и сценарий будет продолжен до следующей строки кода.

Включите обработку ошибок обратно для остальной части скрипта, добавив это сразу после строки (ы) генерации ошибки:

On Error Goto 0 

Есть более эффективные способы борьбы с ошибками, но это, вероятно, самый простой использовать.

Смежные вопросы