在 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 (将#修改为@)