【问题标题】:Identifier too long标识符过长
【发布时间】:2015-02-04 02:09:24
【问题描述】:

我遇到了这个问题:“标识符太长”。我能做些什么来解决这个问题?我尝试使用 break "_" 。但是会有另一个错误:缺少结束括号。谢谢大家。

 Sub Netting()

     Dim Found As Range
     Dim LR As Long
     Dim ws As Worksheet
     Dim cell As Range
     Dim a As Variant, v As Variant, num

     Set ws = Sheets("PAYABLES - OUTFLOWS")

     Set Found = ws.Rows(1).Find(What:="Invoice Amount", _
                                LookIn:=xlValues, lookat:=xlWhole)
     If Found Is Nothing Then Exit Sub

     a = [{"991",1042;"916", 1042;"954",261;"975",3004;"938",726;"901",762;"482",728; _
            "482",728;"934",723;"200",724;"201",724;"952",724;"992",3030;"980",3207;"116",626;"939",722;"390",517;"484",548;"339",59;"141",717;"935",59;"994",3370;"140",8408;"950",775;"370", 734 }] 'create 2-d lookup array

     LR = ws.Cells(ws.Rows.Count, Found.Column).End(xlUp).Row
     Found.Offset(0, 1).EntireColumn.Insert
     ws.Cells(1, Found.Column + 1).Value = "Netting"

     For Each cell In ws.Range(ws.Range("C2"), ws.Cells(LR, 3))
        num = CStr(Mid(cell.Value, 3, 3))
        v = Application.VLookup(num, a, 2, False)
        cell.EntireRow.Cells(Found.Column + 1).Value = IIf(IsError(v), "", v)
     Next cell

End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    每行的字符数有限制。您可以使用更简单的方法来完成此操作。将您的数据添加到电子表格(例如“Sheet1”)以及 A 列和 B 列中。

    Sub Assign2DVector()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets("Sheet1")
        Dim a As Variant
        a = ws.Range("A1:B20").Value ' set to whatever your actual range is
    End Sub
    

    【讨论】:

    • 这只是我当前代码的一部分。我正在进行的项目需要我创建一个新列并根据另一列为其分配值。我将编辑我的原始帖子以展示我迄今为止的工作。谢谢
    • Hafiz,您的代码中的问题再次是赋值语句太长。因此,不要对这些数据进行硬编码,而是将其添加到单独的工作表(例如称为 SourceData),并使用我在答案中的代码
    • 嗨,jeanno,真的很感谢你花时间帮助我。我还是不太确定明白。你能给我解释一下吗?我对 VBA 环境还是很陌生。干杯。
    • 我在您的a = [{"991",1042;"916", 1042;"954",261;"975",3004;"938",726;"901",762;"482",728; _ "482",728;"934",723;"200",724;"201",724;"952",724;"992",3030;"980",3207;"116",626;"939",722;"390",517;"484",548;"339",59;"141",717;"935",59;"994",3370;"140",8408;"950",775;"370", 734 }] 代码中所说的这一行并不好。在您的工作簿中创建一个名为 SourceData 的新工作表,以及我提供的用于创建 2D 矢量的代码。确保将 Sheet1 更改为 SourceData 并设置正确的范围
    猜你喜欢
    • 1970-01-01
    • 2014-02-08
    • 2012-12-22
    • 1970-01-01
    • 2013-10-01
    • 2020-07-15
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多