微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 VBA 中使用偏移量在多条件索引/匹配上键入不匹配

如何解决在 VBA 中使用偏移量在多条件索引/匹配上键入不匹配

这是我的代码

Option Explicit

Sub DropValues()
    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim cws As Worksheet: Set cws = wb.Worksheets("Holdings")
    Dim str2 As String: str2 = "Holdings - FTH & GAAP_crosstab-" & cws.Range("I2").Value & ".xlsx"
    Dim tb As Workbook: Set tb = Application.Workbooks(str2)
    Dim tws As Worksheet: Set tws = tb.Worksheets("Holdings - FTH & GAAP_crosstab")
    
    Dim Lim As Long: Lim = cws.Range("A3").Value
    Dim PortAd As String: PortAd = "B6:B" & (Lim + 2)
    Dim CusipAd As String: CusipAd = "A6:A" & (Lim + 2)
    Dim BV,MV,BY,ED,EC,OAS As String
    BV = "V4:V" & Lim
    MV = "Y4:Y" & Lim
    BY = "Z4:Z" & Lim
    ED = "AC4:AC" & Lim
    EC = "AD4:AD" & Lim
    OAS = "AE4:AE" & Lim  
  
    Dim i As Long
        For i = 1 To cws.Range("B3").Value
            cws.Range("J5").Offset(i,0).Value = WorksheetFunction.Index(tws.Range(BV),WorksheetFunction.Match(1,_
                        (cws.Range(CusipAd) = cws.Range("F5").Offset(i,0)) * (cws.Range(PortAd) = cws.Range("E5").Offset(i,0)),0))
            cws.Range("K5").Offset(i,0).Value = WorksheetFunction.Index(tws.Range(MV),0))
            cws.Range("L5").Offset(i,0).Value = WorksheetFunction.Index(tws.Range(BY),0))
            cws.Range("M5").Offset(i,0).Value = WorksheetFunction.Index(tws.Range(ED),0))
            cws.Range("N5").Offset(i,0).Value = WorksheetFunction.Index(tws.Range(EC),0))
            cws.Range("O5").Offset(i,0).Value = WorksheetFunction.Index(tws.Range(OAS),0))
        Next i

    End Sub

当我尝试运行它时,它在循环中的第一个索引/匹配处停止,说存在类型不匹配。 Offset 功能或 Index/Match 功能是否有问题?我正在尝试在 google 上寻求帮助,但遇到了问题。

单元格 A3 和 B3 中有数字(都是计数函数的结果)。 单元格 I2 包含 12312019,这是文本函数的结果。

先谢谢你!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。