首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InputBox变量在Countif公式中未被识别

InputBox变量在Countif公式中未被识别
EN

Stack Overflow用户
提问于 2019-08-01 14:34:21
回答 2查看 60关注 0票数 0

我有一个宏,可以使用countif,用不同年份表示的数据进行计算。我希望能够将搜索的年份设置在输入框中,这样您就可以根据具体情况更改您的搜索年份。我的变量不是带进公式的。

代码语言:javascript
复制
Sub FullGiftCalculation()
    Dim ws As Worksheet
    Dim xYear As Integer 
    xYear = InputBox("What is the Campaign Year?")

    For Each ws In Worksheets
        ws.Select

        ActiveSheet.Range("T10").Value = "Total Constituents"
        ActiveSheet.Range("T11").Value = "Total Gifts Open"
        ActiveSheet.Range("T12").Value = "Total Gifts Closed"
        ActiveSheet.Range("T13").Value = "% Closed"
        ActiveSheet.Range("V10").Formula = "=countif(B1:B5000,xYear)"
        ActiveSheet.Range("V12").Formula = "=countifs(B1:B5000,xYear,E1:E5000,""C-Pledged"")"
        ActiveSheet.Range("V11").Formula = "=V10-V12"
        ActiveSheet.Range("V13").Formula = "=V12/V10"
        Range("V13").NumberFormat = "0.00%"
    Next ws    
End Sub

当我在宏中执行时,当我悬停在"xYear =.“行时,我可以看到我的set变量。但不是在我的公式里。运行时的输出为零。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-01 14:53:29

当您通过VBA放置公式时,您可以将公式以字符串的形式放置。

=可数(B1:B 5000,xYear)

但是正如您在上面的字符串中所看到的,xYear是一个变量,当您需要在任何字符串中添加一个变量时,您需要使用&符号连接这个变量,然后这样做.

=countif(B1:B 5000,“& xYear &”)

也就是说你把绳子分成两部分..。

“=countif(B1:B 5000,”和")“,然后使用字符串连接符号&在变量的两边,将变量放置在两个字符串部分之间。

就您的代码而言,如果要在工作簿中的每个可用工作表上放置相同的公式,甚至不需要选择工作表。

你可以试试下面的代码..。

代码语言:javascript
复制
Sub FullGiftCalculation()
    Dim ws As Worksheet
    Dim xYear As Integer
    xYear = InputBox("What is the Campaign Year?")
    For Each ws In Worksheets
        With ws
            .Range("T10").Value = "Total Constituents"
            .Range("T11").Value = "Total Gifts Open"
            .Range("T12").Value = "Total Gifts Closed"
            .Range("T13").Value = "% Closed"
            .Range("V10").Formula = "=countif(B1:B5000," & xYear & ")"
            .Range("V12").Formula = "=countifs(B1:B5000," & xYear & ",E1:E5000,""C-Pledged"")"
            .Range("V11").Formula = "=V10-V12"
            .Range("V13").Formula = "=V12/V10"
            .Range("V13").NumberFormat = "0.00%"
        End With
    Next ws
End Sub
票数 0
EN

Stack Overflow用户

发布于 2019-08-01 14:37:19

您需要将变量值插入论坛,如下所示:

代码语言:javascript
复制
Sub FullGiftCalculation()
    Dim ws As Worksheet
    Dim xYear As Integer 
    xYear = InputBox("What is the Campaign Year?")

    For Each ws In Worksheets
        ws.Select

        ActiveSheet.Range("T10").Value = "Total Constituents"
        ActiveSheet.Range("T11").Value = "Total Gifts Open"
        ActiveSheet.Range("T12").Value = "Total Gifts Closed"
        ActiveSheet.Range("T13").Value = "% Closed"
        ActiveSheet.Range("V10").Formula = "=countif(B1:B5000,"& xYear &")"
        ActiveSheet.Range("V12").Formula = "=countifs(B1:B5000,"& xYear &",E1:E5000,""C-Pledged"")"
        ActiveSheet.Range("V11").Formula = "=V10-V12"
        ActiveSheet.Range("V13").Formula = "=V12/V10"
        Range("V13").NumberFormat = "0.00%"
    Next ws    
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57311387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档