![](/img/trans.png)
[英]Excel 2016 -How do I seach for the value in workbook 1 cell A1 in workbook 2 range $G:$R?
[英]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
那么如何改善编码呢?
我真的不认为可以使用公式轻松完成此操作。
最简单的方法是:
更正了代码以使其正常运行。 查看我所做的更改的评论:
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.