Excel / VBA线路延续太多

时间:2015-06-01 14:05:09

标签: arrays excel vba excel-vba

我在excel / vba中有大量的列标题 当我超过24行时,它表示线路延续太多。 我真的需要其余的列标题,因为代码必须查找我需要的每个列标题。 有什么建议吗?

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"))

3 个答案:

答案 0 :(得分: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

然后您可以迭代KeysValues;请注意Keys必须是唯一的,但如果您的列标题是实际的表格标题,那么它们的唯一性已经由Excel强制执行。

那说我不确定为什么你正在做你正在做的事情。如果您的代码按预期工作,我建议您将其移至Code Review进行调整。我的意思是,使用这个数组的整个过程。我确信有更好,更好的方法来做到这一点。

答案 1 :(得分:1)

这是因为你只能在一行代码中使用这么多_。

尝试每行放2个,你应该好一会儿(取决于数组有多大)。可能要考虑将它们移动到隐藏的工作表并在循环中读取它们

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

答案 2 :(得分:1)

我不确定你的方法,但你得到的Line Continuations错误不是数组的问题,而只是设置VBA的方式。

您可以在每行语句的行尾使用_的最长次数,并且您已达到限制。

要继续添加到数组,只需删除一些延续 - 它看起来不漂亮,但会起作用,例如

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