excel 宏命令应用3

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:10:21
现有一个工作表,B1输入一个值时,A1内有一个IF函数对B1进行逻辑判断,IF函数通过判断刚输入的数值在C列的出现次数<1时输出"采样",否则为"不采样",并且工作表有一个宏可以在A1="采样"时,将B1的数值输出到C列。问题是B1的值输出到C列后,该数值在C列的出现次数=1,A1的运算结果又变成"不采样"了,这个应该算是循环引用吧,请高手给编个宏,让B1运算结果为"采样",数据输出到C列后,但A1不重新运算。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
If WorksheetFunction.CountIf([C:C], [B1]) = 0 And [B1] <> "" Then
[A1] = "采样"
Dim x
x = WorksheetFunction.CountA([C:C])
Cells(x + 1, 3) = [B1]
Else
[A1] = "不采样"
End If
End If
End Sub

A1中的函数也用VBA来赋值不就成了? 这些问题不用100分,有些假的感觉,呵呵

这个似乎不需要宏吧
a1=IF(COUNTIF($B$1:$B$1000,B1)>1,"不采样","采样")

c1=IF(A1="采样",B1,"")
发现不采样后就将输入的数据删掉。