2015-06-01 3 views
2

У меня есть большой массив заголовков столбцов в excel/vba Когда я перехожу через 24 строки, он говорит слишком много строк. Мне действительно нужны остальные заголовки столбцов, потому что код должен искать все заголовки столбцов, которые мне нужны. Любые предложения?Excel/VBA слишком много продолжений строк

myHeaders = Array(Array("Account_ID", "Account_ID"), _ 
Array("Claim_ID", "Claim_ID"), _ 
Array("Account_Name", "Account_Name"), _ 
Array("Claim_Type", "Claim_Type"), _ 
Array("Coverage", "Coverage"), _ 
Array("Claim_Level", "Claim_Level"), _ 
Array("Claim_Count", "Claim_Count"), _ 
Array("File_Date", "File_Date"), _ 
Array("File_Year", "File_Year"), _ 
Array("Resolution_Date", "Resolution_Date"), _ 
Array("Resolution_Year", "Resolution_Year"), _ 
Array("Claim_Status", "Claim_Status"), _ 
Array("Indemnity_Paid", "Indemnity_Paid"), _ 
Array("Disease_Category", "Disease_Category"), _ 
Array("State_Filed", "State_Filed"), _ 
Array("First_Exposure_Date", "First_Exposure_Date"), _ 
Array("Last_Exposure_Date", "Last_Exposure_Date"), _ 
Array("Claimant_Employee", "Claimant_Employee"), _ 
Array("Next", "Next")) 
+0

Как насчет скрытого листа со всеми именами столбцов? Зачем беспокоиться о массивах? – PaulFrancis

+0

Просто уменьшите код и поместите определение двух массивов в строку sigle;) –

+4

Зачем они вам нужны в виде массива массивов с заголовком, указанным дважды? –

ответ

10

Clippy выскакивает

  • Похоже, что вам нужно Scripting.Dictionary. Хотели бы вы ссылаться на библиотеку Microsoft Scripting Runtime?

Таким образом, вы могли бы его на столько строк, сколько вы хотите, и сохранить его для чтения, без каких-либо линий продолжений:

Dim headings As New Scripting.Dictionary 
With headings 
    .Add "Account_ID", "Account_ID" 
    .Add "Claim_ID", "Claim_ID" 
    .Add "Account_Name", "Account_Name" 
    '... 
    '... 
    '... 
    .Add "Next", "Next" 
End With 

Затем вы можете итерируем Keys и Values; обратите внимание, что Keys должен быть уникальным, но если ваши заголовки столбцов являются актуальными заголовки таблиц, их уникальность уже реализована Excel в любом случае.

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

1

Это потому, что вы можете использовать только столько _ для одной строки кода.

Попробуйте поместить 2 строки и вы должны быть хорошими на некоторое время (зависит от того, насколько большой массив получает). Могу рассмотреть вопрос о перемещении их в скрытый лист и читать их в цикле

myHeaders = Array(Array("Account_ID", "Account_ID"), Array("Claim_ID", "Claim_ID"), _ 
Array("Account_Name", "Account_Name"), Array("Claim_Type", "Claim_Type"), _ 

и т.д.

+0

Спасибо вам большое! – BLkrn

1

Я не уверен в своем подходе, но линия Продолжение ошибки вы получаете не является проблема с массивом, но только с тем, как VBA настроен.

Максимальное количество раз, которое вы можете использовать _ в конце строки для каждого утверждения, и вы достигли предела.

Чтобы продолжить добавление в массив, просто удалить некоторые из продолжений - это не будет выглядеть красиво, но будет работать например

Array("Claimant_Employee", "Claimant_Employee"), Array("Another", "Another"), Array("And Another", "And Another"), _ 
+0

Цените свою помощь! – BLkrn

+0

Нет проблем вообще :) – Trum

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