Excel 运行时错误1004无法获取工作表的countif属性

Excel 运行时错误1004无法获取工作表的countif属性,excel,vba,countif,Excel,Vba,Countif,下面是我的代码: Sub yenilikleri_ekle() Dim sh1 As Worksheet, sh2 As Worksheet, lr As Long, rng As Range Set sh1 = ThisWorkbook.Worksheets("Input") Set sh2 = ThisWorkbook.Worksheets("Ayarlar") lr = sh1.Cells(Rows.Count, 2).End(xlUp).Row

下面是我的代码:

Sub yenilikleri_ekle()

    Dim sh1 As Worksheet, sh2 As Worksheet, lr As Long, rng As Range
    Set sh1 = ThisWorkbook.Worksheets("Input")
    Set sh2 = ThisWorkbook.Worksheets("Ayarlar")
    lr = sh1.Cells(Rows.Count, 2).End(xlUp).Row
    Set rng = sh1.Range("B5:B" & lr)
    For Each c In rng
        If WorksheetFunction.CountIf(sh2.Range("A:A"), c.Value) = 0 Then
            sh2.Range("A" & sh2.Cells(Rows.Count, 1).End(xlUp).Row + 1) = c.Value

        End If
    Next
End Sub
它所做的是匹配sh1和sh2中的单元格。如果不在sh2中,则将Cell.Value添加到sh2中。在单元格的文本超过255个字符之前,代码工作正常。直到它成为一个长文本

当文本很长时,它返回一个错误运行时错误1004:无法获取工作表的countif属性,这对我来说毫无意义。我有两天没能解决这个问题,需要你的帮助。我为c添加了Dim,但没有更改,仍然是相同的错误。我换成了CountA,但后来变得毫无反应

提前感谢您的帮助。

如果目标是将此工作簿。工作表放入此工作簿中。工作表Ayarlar.RangeA:A没有重复项,并且此工作簿。工作表Ayarlar.RangeA:A之前为空,则只需执行以下操作:

With ThisWorkbook
    .Worksheets("Input").Columns("B:B").Copy Destination:=.Worksheets("Ayarlar").Range("A1")
    .Worksheets("Ayarlar").Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo
End With
问候


Axel

这是否有助于我在询问之前阅读,但没有帮助:CountIf的第二个参数不仅仅是一个字符串。它将被解析,因为它可以包含通配符和>32之类的标准。所以这个错误的原因实际上是c.Value中的大字符串。如果目标是获得工作表输入列B的内容而不重复,那么您可以使用RemovedUpplicates。没有其他方法来改进代码吗?或者我需要简单地添加所有并删除重复项吗?这不符合我的要求。它会删除已经存在的值。我不希望它删除以前的值。我希望它只添加缺少的cell.values。您发送的公式只是比较两张表并进行精确匹配。Greetings@BernardSaucier有什么想法吗?