【问题标题】:How can I add a variable into an Excel formula in VBA?如何在 VBA 中将变量添加到 Excel 公式中?
【发布时间】:2021-03-19 03:15:52
【问题描述】:

在COUNTIF 公式下,我想在向下移动 2 行 (ActiveCell.Offset) 后查看响应表中的下一列。我该怎么做呢? 谁能解释一下为什么当我想看 C 列时,编码是 C3,而 D 列是 C4?

Sub x()
    Dim i As Integer
    For i = 3 To 100    
        ActiveCell.Offset(4, 1).Range("A1").Select
        Application.CutCopyMode = False
        'ActiveCell.FormulaR1C1 = "=COUNTIF('Responses'!C4,data!R8C)"
        ActiveCell.FormulaR1C1 = "=COUNTIF('Responses'!Ci,data!R8C)"
        ActiveCell.Select
        Selection.AutoFill Destination:=ActiveCell.Range("A1:E1"), Type:= _
            xlFillDefault
        ActiveCell.Range("A1:E1").Select
        ActiveCell.Offset(2, 0).Range("A1").Select
    Next i
End Sub

【问题讨论】:

    标签: excel vba offset


    【解决方案1】:

    我不确定你的意思是什么,但我会重写以使你的代码更具可读性。也许它会帮助你解决问题。您能详细解释一下要求吗?

    Sub x()
        Dim i As Integer
    
        For i = 3 To 100
            ActiveCell.Offset(4, 1).Select
            ActiveCell.Formula = "=COUNTIF(Responses!R" & i & "C, data!R8C)"
            Selection.AutoFill Destination:=ActiveCell.Range("A1:E1"), Type:=xlFillDefault
            ActiveCell.Offset(2, 0).Select
        Next
    End Sub
    

    【讨论】:

    • 哦,我想做的是,我想计算存储在不同工作表中的问题的“同意”、强烈同意等响应的数量。有很多问题。所以我会在我计算第一个 qn 的响应之后为我运行它,它会移动到下一列。
    • 您的意思是当前工作表包含 A1:E1 范围内的问题,“响应”工作表包含与该问题对应的用户响应,存储在 A3:E100 范围内。并且您想将每个问题的响应数作为工作表“数据”范围 C8 的条件,将结果放入当前工作表的范围 A3:E3?不是吗?
    猜你喜欢
    • 2021-11-09
    • 2023-01-25
    • 1970-01-01
    • 2017-07-19
    相关资源
    最近更新 更多