String 为单元方程VBA创建动态计数字符串

String 为单元方程VBA创建动态计数字符串,string,excel,vba,count,countif,String,Excel,Vba,Count,Countif,我有一个连续插入新数据的表。如果类别存在于B列中,数据将从B#:F#输入到该类别下的新行中。但如果它不存在,则会为该类别标题创建一个新行,然后在下面插入数据。 列A包括每个类别的计数,并放置在第一个类别出现的左侧单元格中。例如,如果列b出现6次“橙色”,则计数位于橙色第一个实例(列a)的左侧 如果在新行中添加了设置为变量tgt的新类别(让我们说“hello”),那么如何确保代码中的countif语句动态更改为设置为tgt的值 Dim tgtVal As String tgtVa

我有一个连续插入新数据的表。如果类别存在于B列中,数据将从B#:F#输入到该类别下的新行中。但如果它不存在,则会为该类别标题创建一个新行,然后在下面插入数据。 列A包括每个类别的计数,并放置在第一个类别出现的左侧单元格中。例如,如果列b出现6次“橙色”,则计数位于橙色第一个实例(列a)的左侧

如果在新行中添加了设置为变量tgt的新类别(让我们说“hello”),那么如何确保代码中的countif语句动态更改为设置为tgt的值

Dim tgtVal As String
         tgtVal = tgt.Value
         tgt.Offset(0, -1).FormulaR1C1 = "=COUNTIF(C[1], " & tgtVal & ")-1"
现在,在新插入的类别旁边的工作表中确实会弹出一个计数,但它不是正确的计数。方程式是

“=COUNTIF(B:B,Hello)-1”,计数为-1 在牢房里而不是 =COUNTIF(B:B,“Hello”)-1,计数为1

如果我在代码中添加另一对引号,尝试在工作表中的countif语句中包含引号,如:

tgt.Offset(0,-1)。公式1c1=“=COUNTIF(C[1],”“&tgtVal&”“)-1” 然后它显示为 =COUNTIF(B:B,“&tgtVal&”)作为单元格中的等式-1


如何确保它在单元格等式中显示为“tgtVal”而不是“tgtVal”?

在尝试构建字符串文字时,应将结果输出到即时窗口。这将帮助您检测数据是否存在任何错误

这是您的代码片段
“=COUNTIF(C[1],”&tgtVal&“)-1“
的结果。请注意,
&tgtVal&
实际上是字符串的一部分

=COUNTIF(C[1],“&tgtVal&”)1

这里有两种方法可以获得正确的结果
=COUNTIF(C[1],“”)-1

字符串文字

=COUNTIF(C[1],“”&tgtVal&“”-1

将ASCII代码用于双引号

=COUNTIF(C[1],“&Chr(34)&tgtVal&Chr(34)&“””)-1


尝试构建字符串文字时,应将结果输出到即时窗口。这将帮助您检测数据是否存在任何错误

这是您的代码片段
“=COUNTIF(C[1],”&tgtVal&“)-1“
的结果。请注意,
&tgtVal&
实际上是字符串的一部分

=COUNTIF(C[1],“&tgtVal&”)1

这里有两种方法可以获得正确的结果
=COUNTIF(C[1],“”)-1

字符串文字

=COUNTIF(C[1],“”&tgtVal&“”-1

将ASCII代码用于双引号

=COUNTIF(C[1],“&Chr(34)&tgtVal&Chr(34)&“””)-1


你能分享你的床单吗?想要的结果表呢?你能分享一下吗?想要的结果表呢?