首页 > 解决方案 > 类型不匹配:范围公式

问题描述

我完全不知道为什么会出现“类型不匹配”错误。

错误出现在 Range(RelAddy).Formula 行上。

Sub CallingUserformAssignJC()

BeforeLastRow = Sheets("Information").Cells(Rows.Count, 19).End(xlUp).Row
Sheets("Information").Range("U2:U" & BeforeLastRow).ClearContents

LastRowAC = Sheets("Information").Cells(Rows.Count, 19).End(xlUp).Row
LastCol = Sheets("Today").Cells(1, Columns.Count).End(xlToLeft).Column

For j = 1 To LastCol
    CurrLastRow = Sheets("Today").Cells(Rows.Count, j).End(xlUp).Row
    startAddy = Sheets("Today").Cells(2, j + 1).Address
    endAddy = Sheets("Today").Cells(CurrLastRow, j + 1).Address
    RelAddy = Sheets("Today").Cells(CurrLastRow + 1, j + 1).Address
    Range(RelAddy).Formula = "=COUNTA(" & Sheets("Today").Range(startAddy, endAddy) & ")"
    unassignedMilestone = Sheets("Today").Cells(CurrLastRow + 1, j + 1).Value
    Do While unassignedMilestone <> 0
        frmAssignJC.Show
        frmAssignJC.Hide
    Loop
    j = j + 3
Next j

End Sub

我查看了 locals 窗口,startAddy、endAddy 和 RelAddy 都是 Variant/String 类型。任何帮助将不胜感激,谢谢。

标签: excelvbaformulamismatch

解决方案


问题出在Range("B2").Formula = "=COUNTA(" & Sheets("Today").Range(startAddy, endAddy) & ")"

尝试Range("B2").Formula = "=COUNTA(" & Sheets("Today").Range(startAddy, endAddy).Address & ")"

为了使用公式,您需要获取范围的地址,而不仅仅是范围


推荐阅读