繁体   English   中英

擅长搜索并增加价值(如果不存在)

[英]excel seach and add value if not there

我正在寻找类似于vlookup的东西,但具有宏和附加功能。我不知道从哪里开始需要您的帮助。

所以我有一张纸

Cell A1:  bu 200000 olacaktır
Cell A2:  BCD
Cell A3:  CDE
Cell A4:  DEF

Sheet2:

A1: BCD
A2: DEF

因此工作表2中缺少“ bu 200000olacaktır”和CDE,所以我希望在工作表Sheet2的单元格a3和工作表Sheet2的单元格a4中添加这些值

结果应该类似于Sheet2:

A1: BCD
A2: DEF
A3: bu 200000 olacaktır
A4: CDE

有什么办法可以做这个公式或宏吗?

大家好,我对宏做了一些操作,但是出现了一些小错误,需要您的帮助才能使其变得完美。

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, 1).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)(2) = c.Value
End If
Next
End Sub

它可以完成工作,但是仅当单元格中包含一些数字时,它才会混淆

是否已将这个大胆的值复制了两次,即使其他所有都还可以。

bu 200000olacaktır

那么如何改善编码呢?

我真的不认为可以使用公式轻松完成此操作。

最简单的方法是:

  1. 复制A列中的所有数据(在Sheet1中)
  2. 将其粘贴到A列的末尾(在Sheet2中)
  3. 选择整个列A(在Sheet2中)
  4. 进入数据->数据工具->删除重复项
  5. 点击确定

更正了代码以使其正常运行。 查看我所做的更改的评论:

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 'Changed column 1 for column 2, since you're after refering to column "B"

    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 'Removed the (2) that had no meaning, and added a +1 to go to the next available line
        End If
    Next

End Sub

尝试更换

    If WorksheetFunction.CountIf(sh2.Range("A:A"), c.Value) = 0 Then

    If WorksheetFunction.CountIf(sh2.Range("A:A"), CStr(c.Value)) = 0 Then

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM